2015-10-13 22 views
0

我有一個ViewController裏面的UIContainerView,它將被顯示爲一個popoverViewController。 在containerView中嵌入了一個UINavigationViewController。 在導航視圖中嵌入了tableViewController,它在單元格選擇上執行segue。SWIFT UINavigationController嵌入在一個容器視圖

像這樣enter image description here

當用戶從設置表視圖控制器我的課程點擊了(主型材 - 視圖 - 控制器)的委託方法被調用來更新popoverViewController的preferredContentSize。 並且當UITableviewcontroller上的自定義backButton(<)時,popoverView將再次更改大小。我設法通過代理 得到它所有的工作,但據說它只能工作一次...從設置表視圖控制器的委託方法不會被調用了。 我認爲設置視圖控制器自行執行segue後,主配置文件視圖控制器的代理會丟失,並且不會再次調用。

這是它的外觀在運行時

enter image description here

現在我的會話,並返回到原始大小的點擊尺寸改變用戶點擊後退按鈕後

enter image description here

但之後代理方法不會被調用,並且視圖不會像這樣改變大小

enter image description here

我正在使用SWIFT 2.0和Xcode 7.01關於如何保留委託方法的任何解決方案將非常感激。

回答

0

好吧,所以我解決了它沒有使用代表方法。 當提出一個應該改變屏幕尺寸視圖控制器我使用

func viewWillAppear(animated: Bool) { 
super.viewWillAppear(true) 
presentingViewController?.preferedContentSize.width = 500 
} 

,我扭轉它在viewWillDisappear

我希望它能幫助

相關問題