【问题标题】:check if a ViewController is being opened by TabBar's Tab or by a segue检查 ViewController 是否被 TabBar 的 Tab 或 segue 打开
【发布时间】:2016-06-18 15:05:47
【问题描述】:

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

TabBarController --> SeprateNavigationControllerForEveryChildVC --> 5ViewControllers , 所以从我的VC1(ViewController) 正在打开VC2,它工作正常,但我也在从VC2 打开VC1,所以现在我想检查我的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

    }

知道该怎么做吗?如果是,请指导我

【问题讨论】:

    标签: uiviewcontroller swift2 uistoryboardsegue


    【解决方案1】:

    试试这个:

    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
        }
    

    【讨论】:

      猜你喜欢
      • 2017-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-11
      • 2022-01-04
      • 2018-04-18
      • 1970-01-01
      相关资源
      最近更新 更多