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

控制器跳转小常识

时间:2015-04-25 16:20:39      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

关于控制器跳转需要注意的问题:

 

一般三种方式进行跳转: push,modal,custom

一般跳转相应实现方法和注意点:

1.[self.navigationController pushViewController:jump animated:YES];

适合跳转到代码编写的View上或者xib描述的View。

 

如果想跳转到storyboard搭建的controller用[self performSegueWithIdentifier:@"jump" sender:self];

这种方法适合storyboard搭建的controller之间的跳转,如果你是纯代码写的View或xib描述的,无法设置segue,也就是不能实现跳转,如果真的用了【alloc init】创建,如果xib描述或者代码描述的View则跳转到相应View,如果啥都没有对View进行描述,只是storyboard进行描述,那么很抱歉,反正我不知道怎么主动加载它,只知道有两个主动加载的,一个是加载箭头所指的,一个是加载标示符对应的,但是这些是设置程序运行时最先加载的View,我们这里并不是这样,所以压根就不是跳转到storyboard所描述的样子,而是系统创建的一个view,显示为黑色,你没有去代码设置数据则没有数据显示

 

2.[self presentModalViewController:jump animated:YES];

注意:如果还想要modal回上一个界面还需要另外设置个按钮专门监听点击

 [self dismissModalViewControllerAnimated:YES];

 

3.在storyboard中点击ctrl从自身controller连接到另外一个controller设置跳转方式,一般我设置push,然后为segue绑定标示符,作用:跳转的时可以知道要跳转的相应controller,因为有时候一个控制器对应好几条线,这时就体现了标示符的作用了,只需要进行代码判断,手动跳转就行

[self performSegueWithIdentifier:@"jump" sender:self];

 

注意:如果在storyboard创建了controller,没有进行连线关联和设置Segue,只是设置了自定义classes类名,直接使用[self.navigationController pushViewController:jump animated:YES];进行跳转的话跳转得到的并不是storyboard中创建的view的样子,而是系统自动创建的一个view,而且颜色是黑色的,这就是很多不注意导致所说的跳转黑屏和没有数据的问题,因为都不是同一个View,肯定没数据,数据都设置在了storyboard中,但是并不是加载的storyboard的view

 

注意:如果使用了xib描述的view,突然想换代码编写,发现还出现xib描述的界面,记得clear一下,保险一点就是卸载软件,在clear。

控制器跳转小常识

标签:

原文地址:http://www.cnblogs.com/pocket-mood/p/4456052.html

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