检查是否通过TabBar的Tab或segue打开ViewController

时间:2016-06-18 15:05:47

标签: uiviewcontroller swift2 uistoryboardsegue

好的,所以我的应用程序的层次结构类似于:

TabBarController - > SeprateNavigationControllerForEveryChildVC - > 5ViewControllers, 所以我的VC1(ViewController)开放VC2工作正常,但我也在VC1打开VC2,所以现在我要查看我的VC2是否正在由VC1打开或不打开,以便我可以在VC2

中进行一些更改

我在VC2 viewDidAppear

中尝试了此操作
    if self.isBeingPresented() {
        // being presented
    print("isBeingPresented")
         }
    else if self.isMovingToParentViewController() {
        // being pushed
         print("being pushed") }

但它不打印任何东西, 这就是我从VC1VC2

执行segue的方式
if segue.identifier == "selectChannelSegue"{

        let navigationController = segue.destinationViewController as! UINavigationController
        let viewController2 =  navigationController.childViewControllers[0] as! SelectChannelsTableViewController
        viewController2.delegate = self

    }

任何想法会怎么做?如果是,那么请指导我

1 个答案:

答案 0 :(得分:0)

试试这个:

func isModal() -> Bool {
        if (presentingViewController != nil) {
            return true
        }
        if presentingViewController?.presentedViewController == self {
            return true
        }
        if navigationController?.presentingViewController?.presentedViewController == navigationController {
            return true
        }
        if (tabBarController?.presentingViewController is UITabBarController) {
            return true
        }

        return false
    }