使用 popToViewController:animated 选择视图控制器的更好方法:

2023-12-19

考虑:

[self.navigationController popToViewController:[[self.navigationController viewControllers]objectAtIndex:1] animated:YES];

有没有更好的方法来获取要弹出的视图控制器的索引?这样,如果我对导航堆栈执行某些操作,我就不必返回并进行编辑。我正在考虑将其存储在 VC 上的 ivar 中或使用 #define 宏。有任何想法吗?

Edit:该堆栈有四个视图控制器。我用这段代码从第四个弹出到第二个。


YourViewController *yourViewController;
for ( UIViewController *viewController in self.navigationController.viewControllers ) {
    if ( [viewController isMemberOfClass:[YourViewController class]] ) {
        yourViewController = (YourViewController*)viewController;
        break;
    }
}

[self popToViewController:yourViewController animated:YES];

当然,这是假设堆栈只有一个您正在寻找的控制器类的实例。如果还有更多,我认为您可以选择将其存储在全局可访问的位置,例如应用程序委托。


注意 - 通常如果您在 UIViewController 中使用它,最后一行代码将是:

[self.navigationController popToViewController:seuleMainPage animated:YES];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 popToViewController:animated 选择视图控制器的更好方法: 的相关文章

随机推荐