当我向视图控制器添加UIContainerView时,它的类型是UIView。如何进入嵌入视图的viewcontroller?

时间:2016-04-02 03:33:53

标签: ios uiview

当我向视图控制器添加UIContainerView时,它的类型是UIView。

如何获取嵌入视图的UIViewController?

我需要设置嵌入式视图视图控制器的一些属性。

谢谢

3 个答案:

答案 0 :(得分:2)

在包含 ing 视图控制器的prepareForSegue:sender:中,您可以将segue.destinationViewController作为嵌入式视图控制器进行访问。如果您在包含视图控制器中有多个segue,则您希望在故事板中为每个segll提供一个唯一标识符字符串,这样您就可以检查segue.identifier中的prepareForSegue:sender:以查看您和#39;重新处理。

如果您需要在segue.destinationViewController返回后再向其发送更多消息,则可以将prepareForSegue:sender:保存在实例变量中。

答案 1 :(得分:1)

如果您使用的是storyboard,则可以在prepareForSegue方法中访问子视图控制器,segue是从容器视图到其子视图控制器,如果您使用代码添加子视图控制器,则可以直接访问

答案 2 :(得分:1)

在UIContainerView中,你直接使用Storyboard嵌入到UIViewController,或者你使用编码方式访问childViewController,首先,我在下面给出了storyboard解决方案,

i am create parentViewController add UIContainerView then drag to ChildViewController show option to select the Embed finally run your project

下面给出了使用Coding格式从ParentViewController嵌入ChildViewController的另一种方法

@property (weak, nonatomic) UIViewController *currentViewController;
@property (weak, nonatomic) IBOutlet UIView *containerView;

ViewDidLoad method:

_currentViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"childViewController"];
    _currentViewController.view.layer.cornerRadius = 8.0f;
    _currentViewController.view.translatesAutoresizingMaskIntoConstraints = NO;

    [self addChildViewController:_currentViewController];
    [self addSubview:_currentViewController.view toView:_containerView];



- (void)addSubview:(UIView *)subView toView:(UIView*)parentView {
    [parentView addSubview:subView];

    NSDictionary * views = @{@"subView" : subView,};
    NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|[subView]|"
                                                                   options:0
                                                                   metrics:0
                                                                     views:views];
    [parentView addConstraints:constraints];
    constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[subView]|"
                                                          options:0
                                                          metrics:0
                                                            views:views];
    [parentView addConstraints:constraints];
}

希望它有用..