我在一个块中初始化一个SubViewController。我将视图控制器的视图作为子视图添加到MainViewcontroller中。我的SubViewController中有一些按钮逻辑。
现在发生的事情是,当我按下子视图中的按钮时,由于SubViewController已经发布,应用程序崩溃了。
恐怕这是一个主要的设计问题-但目前我不知道如何避免这种情况。
这是我的block语句中初始化的样子
__strong AAFBPostView *newPost = [[AAFBPostView alloc]init];
newPost.view.frame = CGRectMake(0, 300, 320, 88);
[self.view addSubview:newPost.view];
[newPost setData:result]; //passing some data to the view
最佳答案
您应该将API用于容器视图控制器。 UIViewController
的文档中都介绍了这些内容。
代码的问题是,一旦AAFBPostView
变量超出范围,就没有对newPost
视图控制器的强大引用。顺便说一句-您的视图控制器的类名称应为AAFBPostViewController
。当前名称暗示它是一个视图,而不是视图控制器。
通过使用容器API,父视图控制器保留对子视图控制器的引用,因此问题得以解决。
可以在“适用于iOS的View Controller编程指南”的Creating Custom Content View Controllers部分中找到详细信息。