从第三个视图控制器弹回到第一个视图控制器(根视图控制器),导航项没有被更改。

3
我正在使用一个导航栏,在用户选择后,我会推送几个视图。现在我需要从第三个控制器弹出到第一个视图控制器。应用程序可以弹出到第一个视图控制器,但是导航项没有像在第二个视图控制器中那样被更改,但是我需要更改导航项。
我使用的代码:appdelagte.h
Bool isDelete;
@property(nonatomic)Bool isDelete;

appDelegate.m

@synthesize isDelete;

第三个视图控制器:

-(void)viewWillAppear:(Bool)animated {
  appDelegate.isDelete=YES;
  [self.navigationController popViewControllerAnimated:YES];
}

secondViewController.m

-(void)viewWillAppear:(Bool)animated {
    if(appDelegate.isDelete==YES)
    {
        [self.navigationController popViewControllerAnimated:YES];
    }
}

这里弹出到第一个视图控制器,但导航项并没有像在第二个视图控制器中那样被更改。

请有人帮助我解决这个问题。提前致谢。

1个回答

12

也许你可以在不显示第三个控制器的情况下实现这种行为?例如,在第二个控制器中进行以下检查if(appDelegate.isDelete==YES)

- (void) showThird {
    if(appDelegate.isDelete == NO) {
        MyThirdCtrlClss *ctrl = [[MyThirdCtrlClss alloc] init];
        [self.navigationController pushViewController:ctrl animated:YES];
        [crel release];
    } else {
        [self.navigationController popToRootViewControllerAnimated:YES];
    }
}

这在 iOS 13.0 上仍然像魔法一样有效。谢谢。 - Rakshitha Muranga Rodrigo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接