我如何连接 Controller A 内的 UIButton,以便它使用 Storyboard打开包含在 Controller A 内(在“容器 View ”内)的 Controller B?
即 Controller B只占用 Controller A的部分区域。 Controller A 仍然部分可见。
背景: 将 Controller B 添加到另一个 Controller A 内的容器 View 时,它默认在 Controller A 加载后立即打开 Controller B。我希望首先隐藏 Controller B,然后通过点击按钮将其打开。
最佳答案
将 nib/storyboard 启动资源的 View 生命周期分开会有所帮助。
您需要在 Controller B 的 View 创建和加载之后但在显示之前的某个时间隐藏它。然后,为了响应某个操作,您需要取消隐藏 View (或做一些更漂亮的演示)。
通常,您将在 Controller A 中声明一个属性:
@property (weak, nonatomic) IBOutlet ControllerB *controllerB;
您在 Storyboard 中连接的内容。 现在您有了对 controllerB 实例的引用,您可以在 controllerA 的代码中使用它。
由于您已将 controllerB 的 View 嵌套在 Storyboard中 controllerA 的 View 层次结构中,因此只要在 controllerA 上调用 -viewDidLoad,您的 controllerB 实例就会存在并准备好进行操作。
- (void)viewDidLoad
{
[_controllerB.view setHidden:YES];
//other setup and configuration of controllerA
}
您可以在 viewWillAppear 或其他几个地方执行此操作,但只要在调用 -viewDidAppear 之前隐藏 controllerB.view,就可以了。
然后你有 controllerA 响应按钮按下这样的东西:
- (IBAction)userPressedTheButton:(id)sender
{
[_controllerB.view setHidden:NO];
}
关于ios - 在 Controller A中,通过UIButton打开包含的 Controller B,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22034629/