首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Iphone >

iphone 跳转其间数据传值

2013-01-06 
iphone 跳转之间数据传值我们经常会用的view之间跳转的时候进行传值的操作。。。?利用AppDelegate进行传值:Ap

iphone 跳转之间数据传值

我们经常会用的view之间跳转的时候进行传值的操作。。。

?

利用AppDelegate进行传值:

AppDelegate.h@interface AppDelegate : UIResponder <UIApplicationDelegate>{    NSString *name; //我们将内容保存在这里。。。}

?接着

AppDelegate.m@synthesize name;
?

?

下面是viewcontroller之间的值传递。。。

?

存值:

 //将值放到AppDelegate中 AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];    appDelegate.name = @"http://751401909.iteye.com";

?取值:

//用到的地方取出来 AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];    NSLog(@"name:%@",appDelegate.name);

?这是一种方法。。。当然也有其他方法。。

?

使用NSUserDefaults:

?

如果仅是传值,有点大材小用了。。。他可以传递对象数据。。

?

得到NSUserDefaults:

//得到对象NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults] ;
?

存储:

//setObject 是存储的内容  forKey 是标记  取得时候用[userDefaults setObject:[text1 text] forKey:k1] ;

?取值:

//根据key找到存储的数据 跟android的sharedpreferences类似text1.text = [userDefaults objectForKey:k1] ;

?也比较简单。。。

?

数据库传递:

这里涉及数据库的操作。。需要libsqlite3.0.dylib 并包含sqlite3.h。。。

为了方便;

#define DATABASE_NAME @"test.wp" //数据库名字#define TABLE_NAME @"table_tf" //表名#define ROW_NUMBER @"content"  //字段#define ROW_TIME @"time"  //字段
?

主要代码片段:

创建数据库和表:

@property sqlite3 *database ;@property NSString *dbPath ;..........-(void) initDataBase{    //找到应用程序的路径    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) ;        NSString *documentPath = [paths objectAtIndex:0] ;            dbPath = [documentPath stringByAppendingPathComponent:DATABASE_NAME] ;                int result = sqlite3_open([dbPath UTF8String], &database) ;        if(result == SQLITE_OK){                NSString *sqlCreateTable = [[NSString alloc] initWithFormat:@"CREATE TABLE IF NOT EXISTS %@ (%@ TEXT ,%@ TEXT)",TABLE_NAME,ROW_NUMBER,ROW_TIME];                        [self sqlExc:sqlCreateTable] ;                NSLog(@"数据库创建成功") ;    }        sqlite3_close(database) ;}

?保存数据:

sqlite3_open([dbPath UTF8String], &database) ; //打开数据库    //清空一下表  可以不写NSString *str = [[NSString alloc] initWithFormat:@"DELETE FROM %@",TABLE_NAME] ;    [self sqlExc:str];  //自己定义的方法。。 下面有..........NSString *sql = [[NSString alloc] initWithFormat:@"INSERT INTO %@ (%@,%@) VALUES('%@','%@')",TABLE_NAME,ROW_NUMBER,ROW_TIME,tempStr,time] ;[self sqlExc:sql] ;  //插入数据sqlite3_close(database) ; //关闭数据库-(void)sqlExc:(NSString *)sql{    char *err;        int result = sqlite3_exec(database, [sql UTF8String], NULL, NULL, &err) ;        if (result != SQLITE_OK) {        NSLog(@"数据库操作数据失败!   errCode:%d msg:%s",result,err);    }}
?

也是刚开始学习 ,,,不知道还有没有其他的好的方法。。。? 如果有好的方法,,务必留言哦? 共同学习。。。

?

贴一详细使用方法。。。GO

?

热点排行