我有两个导航控制器层次结构的视图部分,一个显示项目列表,第二个允许您编辑项目或添加新项目。
在父视图上,导航栏右侧有一个添加按钮,一旦按下,就会执行身份为“AddChild”的segue。此外,当用户点击表格项目时,我会执行另一个身份为“EditChild”的转场,所有这些都设置在情节提要中。
如果用户到达父视图(带有项目列表)但尚不存在项目,我想以编程方式执行“AddChild”segue,因此我在父视图控制器的 viewWillAppear: 中添加了以下代码。
// if there are no children, send user to add screen
if (self.childListData.count == 0) {
[self performSegueWithIdentifier:@"AddChild" sender:self];
}
子视图控制器加载正常,但导航项仍然是 previos 视图(后退按钮和添加按钮,而不是后退按钮和保存按钮)。
这是我的 prepareForSegue: 方法:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Get a reference to our detail view
ChildDetailTableViewController *childDetail = (ChildDetailTableViewController *)[segue destinationViewController];
// Pass the managed object context to the destination view controller
childDetail.managedObjectContext = managedObjectContext;
// If we are editing a child we need to pass some stuff, so check the segue title first
if ([[segue identifier] isEqualToString:@"EditChild"])
{
// Get the row we selected to view
NSInteger selectedIndex = [[self.tableView indexPathForSelectedRow] row];
// Pass the child object from the table that we want to view
childDetail.currentChild = [childListData objectAtIndex:selectedIndex];
}
}
我不确定我错过了什么,所以如果有人可以提供帮助,我将不胜感激。