GeekBand:IOS实战第二周

Navigation的局限:

navigation管理segue是由栈管理,但是遇到同等重要和常用的功能时,用nacigation就无法管理
navigationControllerItem 标题和图片只能显示一个,UITableBarControllerItem 即能显示title也能显示image

Navigation的优点:

减少重复工作,统一风格
系统帮你生成一系列控制
结构

页面之间的传值

一个极为重要的method,它就是: prepareForSegue:sender:
这个method 的完整表达式为: - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
第一个参数是 segue, 第二个参数是 sender。
这里给出一段代码实例,展示了这个method 的常用方法。 这段code 写在当前的ViewController 对应的.m 文件中。
这个method 主要解决2个问题:
(1) 获取所要跳转到的视图控制器 (ViewController);
(2) 同时,将上一个视图的数据,传递给下一个视图。 (比如: 上一个视图是TableView, 那么,就要将点击cell的行号传递到下一个视图)。
UIViewController *destination = segue.destinationViewController; 只要是 prepareForSegue:sender: 总会声明一个目标视图控制器(destination viewcontroller);
获取到下一个视图控制器后, 可以跳转过去了。但仅仅跳转还不够,总得将数据传递过去吧。 比如上一个视图是TableView,当用户点击某个Cell 进入下个页面时,就得将所点击的cell 行号传递给下个页面。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
  UIViewController *destination = segue.destinationViewController;
  if ([destination respondsToSelector:@selector(setDelegate:)])       
    {
      [destination setValue:self forKey:@"delegate"];
    }
  if ([destination respondsToSelector:@selector(setSelection:)]) 
  {
    // prepare selection info
    NSIndexPath *indexPath = [self.tableViewindexPathForCell:sender];
    id object = self.tasks[indexPath.row];
    NSDictionary *selection = @{@"indexPath" : indexPath,@"object" : object};
    [destination setValue:selection forKey:@"selection"];
  }
} 

接下来,我们重点谈下 prepareForSegue:sender: 的使用。 该方法的触发条件是:
当前的视图控制器即将被另一个视图控制器所替代时,segue将处于激活状态,从而调用prepareForSegue:sender: 方法。
具体对于TableView来说,当某个cell 被点击时,该cell所对应的segue将被激活,同时,这个method将被调用。我们最关心的数据传递问题, 就是利用这个时机完成的。

  • 也就是说 这个方法会在使用Segue时自动调用。
    在A页面中加入prepareForSegue函数,A显示B页面之前会调用该函数,可利用该函数传值给B
    segue.destinationViewController表示目标页面这里是B
    segue.sourceViewController表示源页面这里是A
    prepareForSegue:sender 参考

值的回传要用协议或delegate 参考

数据的存储

NSUserDefaults 简介,使用 NSUserDefaults 存储自定义对象
这篇博客详细的讲解了NSUserDefaults持久性存储的作用,很好的完成本周联系中对于多个页面跳转时,保留页面所填数据的功能

// 先将其转化为字典,然后用forin遍历删除即可
        NSUserDefaults *defatluts = [NSUserDefaults standardUserDefaults];
        NSDictionary *dictionary = [defatluts dictionaryRepresentation];
        for(NSString *key in [dictionary allKeys]){
            [defatluts removeObjectForKey:key];
            [defatluts synchronize];
        }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,504评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,434评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,089评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,378评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,472评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,506评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,519评论 3 413
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,292评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,738评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,022评论 2 329
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,194评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,873评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,536评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,162评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,413评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,075评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,080评论 2 352

推荐阅读更多精彩内容

  • viewController MVC架构(Model—View—Controller)是弱耦合思想的衍生产物 UI...
    lndv阅读 323评论 0 0
  • 1.自定义控件 a.继承某个控件 b.重写initWithFrame方法可以设置一些它的属性 c.在layouts...
    圍繞的城阅读 3,376评论 2 4
  • 翻译自“View Controller Programming Guide for iOS”。 1 弹出视图控制器...
    lakerszhy阅读 3,499评论 2 20
  • iOS 实战开发课程笔记 本贴旨在作为对极客班 《iOS 开发实战》第五期期课程视频重新学习的笔记。目标是建立一个...
    黄穆斌阅读 2,997评论 12 57
  • 我期望你, 你是春天的曙光! 我思念你, 你是秋天的留恋。 你展开黑色的翅膀, 化作闪电飞来, 将曙光的鲜红播撒!...
    怒隶阅读 389评论 3 4