[iOS]StoryBoard中Container View获得ViewController
在开发中通过StoryBoard中的Container View设计了一个ViewController嵌套一个TableViewController,需要在ViewController中实现代理方法,需要在TableViewController中设置delegate,以前的使用先实例化TableViewController再设置delegate的方法无效,所以需要用另一种思路解决设置delegate的问题。
通过stackoverflow检索到的方法,需要重写prepareForSegue方法获取下一个ViewController,即
[segue destinationViewController];
具体实现方法如下:
- 设置Container之间segue的identifier,例如“SES_TableViewController”。
- 在使用的Container的ViewController中实现代理方法,并重写prepareForSegue,具体代码如下:
#pragma mark - prepareForSegue - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqualToString:@"SES_TableViewController"]) { self.delegate = [segue destinationViewController]; // 设置代理 } }
如果需要获取到下一个ViewController的delegate,可以使用如下代码:
#pragma mark - prepareForSegue - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqualToString:@"SES_TableViewController"]) { // 将自身delegate传过去 TableViewController * tableViewController = [segue destinationViewController]; tableViewController.delegate_BaseVC = self; } }
参考网址:
http://stackoverflow.com/questions/18672590/getting-reference-to-the-view-of-a-container-view
http://stackoverflow.com/questions/15705555/access-to-container-view-controller
小紫呀,你弄个板块来留言也是极好的阿。
“如果你在做毫不费力的事情,就是在浪费时间”,我觉得我现在就是浪费时间。
还有,那个hamiao.net也是你的吗,现在怎么是锐壳的一个默认页
还还有,坚持写博客,没啥东西也挤点来写