码迷,mamicode.com
首页 > 其他好文 > 详细

segue 和 代码 在页面跳转中的异同

时间:2015-10-27 11:33:48      阅读:350      评论:0      收藏:0      [点我收藏+]

标签:

首先是关于segue的使用。

视频参照 白胡子爷爷iOS教学第六集

首先先拉出两个UIViewController,然后定义他们的identifer

技术分享

然后在第一个页面中拉取一个button,然后右键把button指向第二个页面

技术分享

然后会有如下几个选项:

技术分享

其中,上面提到的教学视频中提到的方法是使用push,然而现在这是一个Non-adaptive的segue,从iOS 8之后不推荐使用这个了。

使用这个push,ViewController必须是在UINavigationController中的,否则会出现错误。

这里建议使用show,ViewController在UINavigationController中时,会执行类似于

[self.navigationController pushViewController:secondViewController animated:YES];

的操作(效果是一样的);

否则,会执行类似于

[self presentViewController:secondViewController animated:YES completion:nil];

的操作。

可以用以下的方法,对下个页面进行属性的初始化 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if([segue.identifier isEqualToString:@""]) {
        NSLog(@"come to second view");
        SecondViewController *secondVC = (SecondViewController *)segue.destinationViewController;
        secondVC.info = @"....";//设置信息等
    }
}

但是,只能对属性进行初始化。因为这个方法的是存在于

-(void)awakeFromNib{}

之前,

-(void)viewDidLoad{} 

之后的。所以不能直接对UI控件进行初始化,只能通过设置属性,然后再在 -(void)viewDidLoad{} 中进行UI控件的初始化。

 同理,使用

SecondViewController *svc = [self.storyboard instantiateViewControllerWithIdentifier:@"secondViewNib"];
[self.navigationController pushViewController:svc animated:YES];

或者其他方法跳转时,也没有办法直接对UI控件进行初始化。

项目可见 git链接

 

 

segue 和 代码 在页面跳转中的异同

标签:

原文地址:http://www.cnblogs.com/guavakingfeng/p/4911325.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!