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链接

时间: 2024-10-13 17:34:59

segue 和 代码 在页面跳转中的异同的相关文章

iOS学习笔记20-纯代码实现页面跳转以微博页面为栗子

首先上预览图 主要的实现逻辑在这里

ngRoute+ngAnimate与JQM中的页面跳转的区别

1.ngRoute+ngAnimate与jQM中的页面跳转有何异同? 相同点: (1)完整的HTML只需要一个 (2)使用异步AJAX请求获取下一个页面 (3)可以实现转场动画 不同点: (1)ngRoute需要配置路由字典:jQM没有,更加灵活 (2)ngRoute访问路由地址的格式——特殊格式的hash http://xxx/index.html#/main jQM访问页面地址——普通的URL http://xxx/tpl/main.html (3)ngRoute访问的路由页面可以使用F5刷

StoryBoard初探(一):实现简单的页面跳转与返回

前言 苹果推出故事版很久了,一直没有深入学习过.最近打算尝试用StoryBoard做高保真交互App原型,决定学习下.相对于IB来讲,StoryBoard几乎不用手写代码,便能实现页面交互,这一点很适合会Xcode的同学用来做快速原型开发. 实现简单的页面跳转 新建工程,选择Single View Application,Xcode生成的工程模板中会自动使用StoryBoard.打开Main.storyboard文件,可以像IB一样,拖拽视图对象到ViewController的View上.如图,

js实现页面跳转重定向多种方法

分享下js实现页面跳转重定向的几种方式. 第一种: <script language="javascript"type="text/javascript"> window.location.href="http://www.jbxue.com"; </script> 第二种: <script language="javascript"> alert("返回"); wind

ThinkPHP页面跳转、Ajax技巧详细介绍(十八)

原文:ThinkPHP页面跳转.Ajax技巧详细介绍(十八) ThinkPHP页面跳转.Ajax技巧详细介绍 一.页面跳转 $this->success('查询成功',U('User/test')); ├─//跳当前模块方法下: ├─ $this->success('查询成功','test'); └─//跳到 指定跳转模块方法下 this->success('查询成功',U('User/test')); $this->error('查询失败,3秒后跳会之前的页面/上一页'); //

页面跳转方法(success和error)和重定向

页面跳转 在应用开发中,经常会遇到一些带有提示信息的跳转页面,例如操作成功或者操作错误页面,并且自动跳转到另外一个目标页面.系统的\Think\Controller类内置了两个跳转方法success和error,用于页面跳转提示,而且可以支持ajax提交. 使用方法很简单,举例如下: $User = M('User'); //实例化User对象 $result = $User->add($data); if($result){ //设置成功后跳转页面的地址,默认的返回页面是$_SERVER['H

TP 页面跳转success 和 error 以及重定向功能

TP 系统的\Think\Controller类内置了两个跳转方法success和error,用于页面跳转提示,而且可以支持ajax提交. $User = M('User'); //实例化User对象 $result = $User->add($data); if($result){ //设置成功后跳转页面的地址,默认的返回页面是$_SERVER['HTTP_REFERER'] $this->success('新增成功', 'User/list'); } else { //错误页面的默认跳转页

在UITableView中使用segue进行页面跳转的注意事项

在之前的一篇学习记录UINavigationController的简单总结中, 介绍了使用UINavigationController及segue实现View之间的跳转, 并在两个View之间进行数据的传递. 如果该segue是连接UITableViewCell与WebViewController, 点击单个cell的时候, 发现页面会跳转至WebViewController, 但想要的数据却并未成功地通过segue进行传递. 通过调试, 发现prepareForSegue会比didSelect

js中实现页面跳转

1.在本页中跳转到指定页面 1.window.location.href方式    <script language="javascript" type="text/javascript">           window.location.href="target.aspx";     </script> 2.window.navigate方式跳转   <script language="javascr