从父iOS访问容器视图控制器

在iOS6中,我注意到了新的Container View,但我不太确定如何从包含视图访问它的控制器。

场景:

例

我想从包含容器视图的视图控制器访问警报视图控制器中的标签。

他们之间有一段时间,我可以用它吗?


是的,您可以使用segue来访问子视图控制器(及其视图和子视图)。 使用Storyboard中的属性检查器给alertview_embed一个标识符(例如alertview_embed )。 然后让父视图控制器(容器视图中的一个)实现这样一种方法:

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
   NSString * segueName = segue.identifier;
   if ([segueName isEqualToString: @"alertview_embed"]) {
       AlertViewController * childViewController = (AlertViewController *) [segue destinationViewController];
       AlertView * alertView = childViewController.view;
       // do something with the AlertView's subviews here...
   }
}

你可以简单地用self.childViewControllers.lastObject (假设你只有一个孩子,否则使用objectAtIndex: self.childViewControllers.lastObject


Swift编程

你可以这样写

var containerViewController: ExampleViewController?
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    // you can set this name in 'segue.embed' in storyboard
    if segue.identifier == "checkinPopupIdentifierInStoryBoard" {
        let connectContainerViewController = segue.destinationViewController as ExampleViewController
        containerViewController = connectContainerViewController
    }
}
链接地址: http://www.djcxy.com/p/87691.html

上一篇: Access Container View Controller from Parent iOS

下一篇: Add a Subview to a UITableView in Storyboard