我有一个NavigationController层次结构的两个视图,一个显示项目列表,第二个允许您编辑项目或添加新项目。
在父视图上,我在导航栏右侧有一个添加按钮,按下后会执行带有“AddChild”标识的segue。此外,当用户点击表项时,我执行另一个带有“EditChild”标识的segue,所有这些都在故事板中设置。
如果用户到达父视图(带有项目列表)但尚未存在任何项目,我想以编程方式执行“AddChild”segue,因此我在viewWillAppear中添加了以下代码:父视图控制器
// if there are no children, send user to add screen
if (self.childListData.count == 0) {
[self performSegueWithIdentifier:@"AddChild" sender:self];
}
子视图控件加载正常,但导航项仍然是普通视图(后退按钮和添加按钮,而不是后退按钮和保存按钮)。
这是我的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];
}
}
我不确定我错过了什么,所以如果有人可以提供帮助,我会很感激。