我在一个块中正在初始化SubViewController。我将视图控制器的视图作为子视图添加到我的MainViewcontroller中。我的SubViewController里面有一些按钮逻辑。 现在发生了什么,当我按下子视图中的按钮时,应用程序崩溃,因为SubViewController已经发布。
我担心这是一个主要的设计问题 - 但目前我还没有任何线索如何避免这种情况。
这是初始化在我的块语句中的显示方式
__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
答案 0 :(得分:1)
您应该将API用于容器视图控制器。这些都包含在UIViewController
的文档中。
代码的问题是,AAFBPostView
变量超出范围后,newPost
视图控制器没有强引用。顺便说一句 - 您的视图控制器的类名应为AAFBPostViewController
。当前名称表示它是视图,而不是视图控制器。
通过使用容器API,父视图控制器保持对子视图控制器的引用,以便解决问题。
详细信息可以在“适用于iOS的View Controller编程指南”的Creating Custom Content View Controllers部分找到。