1

我有两个导航控制器层次结构的视图部分,一个显示项目列表,第二个允许您编辑项目或添加新项目。

在父视图上,导航栏右侧有一个添加按钮,一旦按下,就会执行身份为“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];
    }
}

我不确定我错过了什么,所以如果有人可以提供帮助,我将不胜感激。

4

0 回答 0