2016-02-29 152 views
0

有關使用objective-C在xCode中容器視圖的問題。當我添加一個容器視圖到我的項目時,默認情況下在它的父視圖控制器中是可見的。我的目標是,它是不可見的開始,並通過一個UIButton與容器視圖和顯示子視圖控制器

addChildViewController: 

方法呈現它。但爲此,我需要它不要在那裏開始。我可以通過將view.alpha設置爲0來解決此問題,但似乎很長時間以來,我們已經看到了一些可見的內容,並且必須使其不可見才能再次顯示。這似乎不是最好的做法。 我檢查了文檔,發現了很多有趣的東西,但沒有在這個特定主題上。任何人都可以將我指向正確的方向嗎?謝謝

--------------------------- UPDATE ----------------- -----------------------

這是我迄今爲止所做的。 (有必要的導入h文件中有一個@property ChildViewController * vc)。它不工作。如在,它不會隱藏任何東西。

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    self.vc = [[ChildViewController alloc]init]; 
    [self addChildViewController:self.vc]; 
    [self.view addSubview:self.vc.view]; 
    self.vc.view.hidden = YES; 
} 
+0

爲什麼不隱藏子視圖並在按鈕點擊時使其可見? –

+0

啊確定使用.hidden? – Paul

+0

是的,您可以在添加爲子視圖後隱藏子視圖並隨時顯示它。 –

回答

0

隱藏視圖控制器通過設置它的alpha是完全沒問題的。它的優點是你的視圖控制器已經準備好了,所以應用程序會感覺更加快速響應。另一種方法是使用「presentViewController」實際將其添加(模態)到視圖。這可能是更正常的方式,但真的很好。唯一不是一個好主意的是,如果你顯示/隱藏的視圖控制器是處理器或內存密集型的,並且你需要你的應用程序對資源更有效,在這種情況下,你應該以模態方式呈現和解除它比顯示/隱藏它與阿爾法。

+0

但我認爲當前視圖控制器不適用於子視圖控制器?我想爲子視圖控制器,你必須使用addChildViewControllers? – Paul

+0

嗨保羅。 'childViewController'在這裏有點問題。 viewController是一個viewController - 沒有不同的類型(除了子類)。一個子視圖控制器以一種方式呈現,這意味着它有一個父項,並且是一組子項中的一個 - 但這只是關係。它仍然是一個視圖控制器。你其實不需要擔心這一點。只需創建一個視圖控制器並以模態方式呈現它 - 這是最簡單的方法。 –

相關問題