2016-02-25 38 views
4

我有信息框對象 - 「信息視圖」。我想把這個視圖追加到當前的VC視圖中,有時候直接在VC類中直接在VC類之外,例如。在我的框架中。如何在非viewcontroller類中獲取可見/當前viewcontroller? Swift

我不想總是傳遞方法的參數當前VC,像

class InfoView: UIView { 

    /* Initialization methods */ 

    func show(viewController: ViewController) { 

     /* some code */ 

     viewController.addSubview(self) 
    } 
} 

我想直接在我的 「信息查看」 類獲取當前VC:

class InfoView: UIView { 

    /* Initialization methods */ 

    func show() { 
     let viewController = /* need get current VC */ 

     /* some code */ 

     viewController.addSubview(self) 
    } 
} 

rootViewController財產UIApplication.sharedApplication()返回當前的VC,但在轉換之後,該VC不會改變。

我怎樣才能得到需要得到當前的VC?

回答

-1

rootViewController是一個很好的選擇。你的根VC可能是一個導航控制器,所以你可以使用這樣的:如果我沒看錯你想在故事板視圖訪問控制器

func currentVC() -> UIViewController? { 
    guard let navigationController = UIApplication.sharedApplication().keyWindow?.rootViewController as? UINavigationController else { return nil } 
    return navigationController.viewControllers.last 
} 
-1

喜阿爾喬姆和DeyaEldeen, 。

您可以得到任何視圖控制器 步驟

1集故事情節ID在其自定義類屬性視圖控制器的實例。
2在你的信息視圖類

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
MyViewcontroller *c = [storyboard instantiateViewControllerWithIdentifier:@"MyViewcontrollerStoryboardID"] 



我希望它幫你

相關問題