TabBarViewController 中获取其他 tab 的视图

问题:

应用中需要对已登录的用户进行访问代理,没有登录的则不需要。先是发现在一个 viewController 中的 webView 如果没有重新打开,会继续原来的代理,就是说如果上一次用了代理这次还是会用代理,如果上次没有用代理这次也还是不会用代理。

解决

因为登录、登出和 webView 是在不同的 tabViewController 中,需要做的就是在这个 tab 中将另外一个 tab 中已打开的 viewController 关闭,同时跳转到第一个 tab。方法如下:

func popAllViewController(viewController:UIViewController) {
    // 将navigationController 中所有视图都弹出
    if let tabBarController = viewController.tabBarController {
        // 跳转到第一个 tab
        tabBarController.selectedIndex = 0
        if let tabControllers = tabBarController.viewControllers {
            for tabController:UIViewController in tabControllers {
                if let navigationController = tabController as? UINavigationController {
                    navigationController.popToRootViewControllerAnimated(true)
                }
            }
        }
    }
}
2015-09-28 15:512