0
我想知道如何在使用ARC时编写我的- tabliView:didSelectRowAtIndexPath:
方法。Cocoa-Touch - 使用ARC时的pushViewController
弧我这样做:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (self.addContactsVC == nil) {
self.addContactsVC = [[AddContactsViewController alloc] initWithNibName:nil bundle:nil];
}
[self.navigationController pushViewController:self.addContactsVC animated:YES];
}
什么我不知道的是,难道是我保存视图控制器类变量太多的开销。我认为,如果每次我想推入视图控制器时都可以重用视图控制器,而不是每次分配一个新视图控制器时都是“良好实践”
也许我应该只是做代替?:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
AddContactsViewController *addContactsVC = [[AddContactsViewController alloc] initWithNibName:nil bundle:nil];
[self.navigationController pushViewController:addContactsVC animated:YES];
}
保存视图控制器的另一个原因是,如果您希望在弹出和推送视图控制器时能够保持视图控制器的当前状态。 –
@PeterWarbo ..起初我以为“嗯..没想到那个”,然后我想“嗯国家应该在模型中”。不确定这些想法是否是确定性的。 –
好吧,像'NSString'这样的模型对象被设置在被推入并弹出的视图控制器中。如果我每次分配视图控制器来推动它,那么模型对象将是零,除非我重用相同的视图控制器。 –