问题描述
|
我有带表视图的viewcontroller,当我单击一个单元格时,我导航到另一个具有另一个表视图的视图控制器。
我尝试在第一个viewcontroller中使用viewDidAppear和viewWillAppear,当我从第二个viewcontroller返回该viewcontroller时,我将输入此方法之一。
问题是,当我返回到该ViewController时,他没有输入此方法。
这就是我进入第二个视图控制器的方式:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
ProfileViewController2 *tmp = [[ProfileViewController2 alloc]initWithType:indexPath.row string:[self.array2 objectAtIndex:indexPath.row]];
[[self navigationController] pushViewController:tmp animated:YES];
[tmp release];
[self.mytableview deselectRowAtIndexPath:indexPath animated:YES];
}
解决方法
众所周知,1和
viewDidAppear
在iOS上不稳定。
如果您使用的是UITableView
,我们总是将我们需要运行的代码放在将表加载到表中之前。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
功能。这是一个小技巧,但效果很好,因为这是UITableViewDataSource协议中调用的第一个函数。
或者,您可以致电
[tmp viewDidAppear];
在按下视图控制器之后,在释放tmp
之前强制执行该函数。