StoryBoard 关于Segue ----prepareForSegue:sender: 理解
来源:互联网 发布:武汉软件培训 编辑:程序博客网 时间:2024/05/18 06:23
//用的swift语言写的,其实OC也是同样地道理理解。
//一旦触发了相同ID的segue就会触发此方法。
override func prepareForSegue(segue:UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier =="addSegueID" {
//之前对这个方法,是只知其然不知其所以然,现在才明白了。第一,在SB当中,拖了一根segue线之后,只要是走了这个prepareForSegue方法,就相当于是给navigationController和ViewController创建了实例对象。现在我自己又在这个方法里创建了一个对象,显然这两个对象是不一样的。所以就会出现这样的错误。
//有什么可以证明走了这个方法就是创建了实例了呢?
//其实可以从segue.destinationController就可看出来,因为segue可以自己找到目的控制区,并且找的十分准确。
//再加上,看API中的介绍,segue这个对象,已经包含了源控制其和目标控制器的信息了。所以可以充分证明以上说法。
//个人观点,也不知道成立与否,segue的 destinationController属性应该属于计算属性,我们只需要拿来使用即可。并且他也是只读属性,本人已经验证过了。
//另外需要补充一点知识:UINavigationController的父类是UIViewController,所以UINavigationController本身必然有一个根view,但是纵观之前所有用到UINavigationController的地方,我们都没有真正的看到过他的view,那么,他的view去哪了?
//要认识到如果导航控制器没有根视图的话是不允许这种情况发生的。所以,每次,我们都是让导航的view指向了其他视图控制器的view,这样,就减少了内存的浪费。何谈此言?
//因为,每次创建导航控制器,必然会创建一个根视图,如果你不把根视图指向其他的,必然会造成他本身的根视图占用空间,但是该空间我们并没有利用他,所以,这就是造成了内存浪费的点。
// API中对view的解释:public var view: UIView! // The getter first invokes [self loadView] if the view hasn't been set yet. Subclasses must call super if they override the setter or getter.
//
// let addContactVC: AddContactViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("AddContactVCID") as! AddContactViewController
// addContactVC.view.backgroundColor = UIColor.redColor()
// addContactVC.nameTextField.text = "123"
//
// print(addContactVC)
// addContactVC.view.backgroundColor = UIColor.whiteColor()
//这样就可以获取到目的控制器。
let addContactNC = segue.destinationViewControlleras! UINavigationController
let addContactVC = addContactNC.viewControllers.firstas! AddContactViewController
- StoryBoard 关于Segue ----prepareForSegue:sender: 理解
- storyboard之 prepareForSegue:sender:
- storyboard之 prepareForSegue:sender:
- storyboard之 prepareForSegue:sender:
- storyboard之 prepareForSegue:sender:
- storyboard之 prepareForSegue:sender:
- IOS storyboard之 prepareForSegue:sender:方法的使用
- IOS开发: storyboard之 prepareForSegue:sender: && 设置为跟控制器
- 代理的使用及-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
- 关于storyboard 的segue返回方法
- Storyboard 传值 prepareForSegue
- iOS--Storyboard 传值 prepareForSegue
- 对比 Android 的 Intent 与 iOS StoryBoard 的 Segue - Intent 如果也能增加个prepareForSegue回调就好了
- iOS学习之——prepareForSegue:sender:
- 关于storyboard的理解
- storyboard segue 传递数据
- storyboard中的segue
- storyboard segue 传值传参数
- LeetCode39——Combination Sum
- String 类
- ThreadPoolExecutor运行原理
- Android SlidingMenu demo(滑动菜单)
- Hadoop 版本编译前的准备
- StoryBoard 关于Segue ----prepareForSegue:sender: 理解
- 分支结构之if篇
- java网络编程之 UDP的使用
- JDBC配置
- 实数是如何存储在计算机内部的
- 聊天室
- s232、rs422和rs485通讯接口的区别
- IIS7.5安装后ASP+access数据库连接错误的问题解决办法
- GCD 编程