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

首先是关于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链接

 

 

转载于:https://www.cnblogs.com/guavakingfeng/p/4911325.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值