我是iOS编程的新手,我创建了我的第一个iPad应用程序,它可以处理多个视图。 因为我不知道如何管理内存和对象(应用程序没有崩溃,但我试图阻止它们)我有这个问题。
一般来说,导航到子视图并返回父视图或父视图的父视图时,更好地更新视图信息,等等:
选项1
在Parent viewWillAppear
方法上实例化Child控制器
父:
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.supportDetailController = [[BIDSupportDetail alloc] init];
}
选项2
在viewDidLoad Parent方法上实例化子控制器和子viewWillAppear
方法调用[self.tablewView reloadData]
父:
-(void)viewDidLoad
{
[super viewDidLoad];
self.supportDetailController = [[BIDSupportDetail alloc] init];
}
儿童:
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.tablewView reloadData]
}
我正在使用iOS 6.1和Xcode 4.6.2
答案 0 :(得分:0)
如果您不确定内存管理,请使用 ARC 。在实际需要时实例化子视图控制器。如果它是一种导航,则无需在viewDidLoad
或viewWillAppear
中对其进行实例化。假设您有一个表格视图,当您选择一个单元格时导航到DetailViewController
(正常情形),然后从didSelectRowAtIndexPath
初始化并显示详细视图控制器。
通常,childVC的viewWillAppear
中的 reloadTableView 不需要在parentVC中用于在返回时刷新视图的方式,仅使用它是必需的,因为它的成本很高时间。
答案 1 :(得分:0)
如果我理解正确,您希望在孩子做某事时更新您的父母。例如:
Bars
的列表,这些列表显示在UITableView
。Bar
。Bar
并返回父级时,家长会在UITableView
上显示。在这种情况下,我更愿意不依赖于父级中的viewWillAppear
或viewDidAppear
。我通常使用孩子内部的Protocol
和weak
引用创建从父级到子级的引用。因此,当您需要实际更新父级时,只需将新创建的对象传递给父级。