Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 当我将UIContainerView添加到视图控制器时,它';s类型是UIView。如何访问嵌入式视图的viewcontroller?_Ios_Uiview - Fatal编程技术网

Ios 当我将UIContainerView添加到视图控制器时,它';s类型是UIView。如何访问嵌入式视图的viewcontroller?

Ios 当我将UIContainerView添加到视图控制器时,它';s类型是UIView。如何访问嵌入式视图的viewcontroller?,ios,uiview,Ios,Uiview,当我将UIContainerView添加到视图控制器时,它的类型是UIView 如何访问嵌入式视图的UIViewController 我需要设置嵌入式视图控制器的一些属性 谢谢如果您使用的是情节提要,您可以在prepareForSegue方法中访问子视图控制器,segue是从容器视图到其子视图控制器,如果您使用代码添加子视图控制器,您可以直接访问它如果您使用的是情节提要,您可以在prepareForSegue方法中访问子视图控制器,segue是从容器视图到其子视图控制器,如果您使用代码添加子视图

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

如何访问嵌入式视图的UIViewController

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


谢谢

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

如果您使用的是情节提要,您可以在prepareForSegue方法中访问子视图控制器,segue是从容器视图到其子视图控制器,如果您使用代码添加子视图控制器,您可以在UIContainerView中直接访问它,您可以使用脚本直接嵌入UIViewController,或者您可以使用编码方式访问子视图控制器,首先,我有下面给出的故事板解决方案

下面给出了使用编码格式从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];
}

希望对您有所帮助。

在UIContainerView中,您使用故事板直接嵌入到UIViewController,或者您使用编码方式访问childViewController,首先,我有下面给出的故事板解决方案

下面给出了使用编码格式从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];
}

希望对您有所帮助。

prepareforsque:sender:
中,在包含ing视图控制器中,您可以作为
segue.destinationViewController
访问嵌入式视图控制器。如果包含的视图控制器中有多个分段,则需要在情节提要中为每个分段指定一个唯一的标识符字符串,以便在
prepareForSegue:sender:
中检查
segue.identifier
,查看要处理的分段


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

在包含ing视图控制器的
prepareforsgue:sender:
中,您可以通过
segue.destinationViewController
访问嵌入式视图控制器。如果包含的视图控制器中有多个分段,则需要在情节提要中为每个分段指定一个唯一的标识符字符串,以便在
prepareForSegue:sender:
中检查
segue.identifier
,查看要处理的分段


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

谢谢您的回复。我使用的是故事板,但是没有segue。它只是一个包含嵌入式UIViewController的容器视图。很抱歉,我的回答很愚蠢。你刚才说的是赛格。我想访问与此无关的视图控制器。我应该从这个序列中保存嵌入式viewcontroller指针吗?我认为您只需要创建一个要嵌入的视图控制器实例,并将容器设置为嵌入式控制器的视图您可以通过代码查看您在IB中完成了多少工作通过链接故事板,所以在这种情况下没有代码可以粘贴。谢谢你的回复。我使用的是故事板,但是没有segue。它只是一个包含嵌入式UIViewController的容器视图。很抱歉,我的回答很愚蠢。你刚才说的是赛格。我想访问与此无关的视图控制器。我应该从这个序列中保存嵌入式viewcontroller指针吗?我认为您只需要创建一个要嵌入的视图控制器实例,并将容器设置为嵌入式控制器的视图您可以通过代码查看您在IB中完成了多少工作通过链接故事板,因此,在本例中没有可粘贴的代码。感谢您的帮助!谢谢你的帮助!谢谢你的帮助!谢谢你的帮助!