2016-02-18 67 views
0

我有一個ContainerViewViewController裏面。然後當用戶點擊按鈕,我隱藏這個ContainerViewmyContainerView.hidden = true),但ViewController繼續工作,這是導致凍結。如何隱藏ContainerView停止ViewController裏面,觸發viewWillDisappear方法。我不需要每次都殺死它。呼叫消失視圖事件

相同的行爲有UITabBarController當你改變標籤,它只是停止控制器。

enter image description here

回答

1

調用標準功能removeFromParentViewController我們刪除 從容器層次中的當前詳細控制器。當調用此 函數時,函數didMoveToParentViewController爲 自動以nil作爲Detail控件上的參數調用。

對於再次

- (void)presentDetailController:(UIViewController*)detailVC{ 

    //0. Remove the current Detail View Controller showed 
    if(self.currentDetailViewController){ 
     [self removeCurrentDetailViewController]; 
    } 

    //1. Add the detail controller as child of the container 
    [self addChildViewController:detailVC]; 

    //2. Define the detail controller's view size 
    detailVC.view.frame = [self frameForDetailController]; 

    //3. Add the Detail controller's view to the Container's detail view and save a reference to the detail View Controller 
    [self.detailView addSubview:detailVC.view]; 
    self.currentDetailViewController = detailVC; 

    //4. Complete the add flow calling the function didMoveToParentViewController 
    [detailVC didMoveToParentViewController:self]; 

} 
+0

添加'''讓scannerVC = ScannerViewController() self.addChildViewController(scannerVC) scannerVC.view.frame = self.searchContainer.frame self.searchContainer。 addSubview(scannerVC.view) scannerVC.didMoveToParentViewController(self)''' 我做到了這一點,但它不工作... – Arti

+0

因爲在viewDidLoad我有:self.view.backgroundColor = UIColor.blackColor() – Arti