【发布时间】:2015-09-22 12:30:08
【问题描述】:
更新 这段代码似乎做了我想做的事,但我很好奇这是否是一个糟糕的策略。
func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController) {
print("pop view controller from tab bar")
if tabBarController.selectedIndex == 2 {
print("appdel detected index 2 tab")
let navCont = viewController as! UINavigationController
navCont.popToRootViewControllerAnimated(true)
}
}
原始问题: 我有一些代码会删除另一个选项卡引用的数据。我想确保当此代码在 [Edit Record VC] 中执行时,即使代码在其自己的选项卡上执行,它也会强制选项卡弹回根视图:
[ ---------------TAB BAR CONTROLLER ------------------ ]
TAB 0 TAB 1 TAB 2 TAB 3
| | | |
| | | |
[NAV CONTR 0] [NAV CONTR 1] [NAV CONTR 2] [NAV CONTR 3]
| |
| |
[Table VC] [Map VC]
\ /
\ /
\ /
[View Record VC]
|
|
[Edit Record VC]
在上图中,当我在 [Edit Record VC] 中删除一条记录时,我想将 Nav Controller 1 和 Nav Controller 2 弹出到第一个 VC。我怎样才能做到这一点?我已经尝试了我能想到的所有方法,但代码无法正常工作。
我想这样做的原因是因为如果 NAV CONTR 2 导航到 [Edit Record VC] 并删除记录,[View Record VC] 仍将引用该记录,导致它指向已删除的对象。当我在删除后尝试打开 NAV CONTR 2 选项卡时,会导致崩溃
【问题讨论】:
标签: ios swift uiviewcontroller uinavigationcontroller uitabbarcontroller