`

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

 

分享到:
评论

相关推荐

    Storyboard跳转和传值

    本篇将深入讲解如何在Storyboard中进行视图控制器之间的跳转以及数据传递。 1. ** segue的概念与类型 ** Segue是Storyboard中连接两个视图控制器的桥梁,用于定义从一个视图控制器到另一个的过渡动画。Segue有...

    iphone 解决键盘遮挡和view传值的一个小例子

    以上就是关于iPhone应用开发中解决键盘遮挡问题和视图间数据传递的一个小例子。通过这个例子,我们可以更好地理解和应用这些常见问题的解决方案,提升我们的iOS开发技能。在实际项目中,可能需要根据具体需求进行...

    iOS俩个app传值

    在iOS开发中,当涉及到两个不同的应用程序之间进行数据交换或用户流程跳转时,我们通常会用到App间通信(Inter-App Communication)的技术。这个过程涵盖了多种方法,包括URL Scheme、Universal Links、Pasteboard、...

    StoreBoard简单实用 storeboard autolayout storeboard push 传值

    "StoreBoard push 传值" 则是指StoreBoard提供的页面推送功能,并且支持在页面之间传递数据。在iOS开发中,通常使用UIStoryboardSegue或者导航控制器(UINavigationController)的pushViewController方法来进行页面...

    iPhone中部分控件的应用

    #### 二、页面跳转与传值 **1. 页面跳转** - **创建新ViewController**: 在项目中新增一个ViewController文件,如`CarNoViewController`。 - **导入并实例化**: 在原ViewController中导入新ViewController的头文件...

Global site tag (gtag.js) - Google Analytics