我的 Storyboard 中有一个 View ,我通过执行以下操作将其添加到当前 View 中:
MainViewController *mvc = [self.storyboard instantiateViewControllerWithIdentifier:@"MainController"];
[self.view addSubview:mvc.view];
View 出现,但我在它出现后所做的一切都会导致崩溃。我做错了什么?
这是一个崩溃的例子:
-(IBAction)showUsername:(id)sender{
[testLabel setText:@"username"];
}
一切都在 Storyboard中 Hook ,所以错误链接的连接应该不会导致问题。
最佳答案
你实例化一个新的 View Controller :
MainViewController *mvc = [self.storyboard instantiateViewControllerWithIdentifier:@"MainController"];
但你不保留它。您的 View 层次结构是,一旦您将它添加到另一个 View 。
[self.view addSubview:mvc.view];
因此,当单击按钮时,将向您发送一条消息 IBAction
,但您的 View Controller 已被释放。为防止这种情况发生,请保留您的 mvc
变量,例如在某个属性中。
@property(nonatomic, strong) MainViewController *controller;
self.controller = mvc;
关于iphone - 从 Storyboard 实例化 ViewController 时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9150811/