2014-03-03 49 views
0

我有一個UIViewController(加入到一個UINavigationController),使用標準的代碼添加另一個UIViewController的觀點:添加的UIViewController與滾動型和自動版式到其他的UIViewController

[self addChildViewController:toVC]; 
[self.view addSubview:toVC.view]; 
[toVC didMoveToParentViewController:self]; 

這是工作的罰款。

childViewController的(toVC)視圖是使用Interface Builder和Auto Layout構造的,它包含一個UIScrollView。如果我加載到我的應用程序直接到UINavigationController(而不是將其添加到另一個視圖控制器)到我的應用程序滾動完美的作品。

但是,當使用上面的代碼將VC添加到我的mainVC時,toVC的scrollView根本不會滾動,我不知道該怎麼做。

+0

是否需要將其添加爲子視圖?如果您展示viewController,它工作嗎? – Logan

+0

如果從我的主VC發出'[self presentViewController:toVC ...]'scrollView仍然不滾動。 – djibouti33

+0

http://stackoverflow.com/questions/2824435/uiscrollview-not-scrolling - 你試過這些解決方案嗎? – Logan

回答

1

您應該設置子視圖控制器視圖的框架和自動識別掩碼/自動佈局約束。即使子控制器的視圖是使用自動佈局設置的,仍然需要使用父控制器正在使用的任何系統將其放在父視圖控制器的視圖中。

編輯:另一個潛在的問題,因爲你提到呈現在滾動視圖不滾動:

你機頂盒,左,右,底部約束滾動視圖的子視圖?滾動視圖不同於普通視圖的「空間到超視圖」約束;而不是定義其子視圖的位置,這些約束定義了內容大小。如果無法在頂部和底部或者左右兩側都設置約束,則可能會使內容大小爲{0,0}的滾動視圖保持不變,在這種情況下,滾動視圖不會滾動。

+0

你能解釋一下你的意思嗎?即使孩子控制器的視圖是用自動佈局設置的,它仍然需要放在父視圖控制器的視圖中「?我有同樣的問題。我有兩個childVCs,我不知道如何在父VC的scrollview中設置它們。人們說如果我們使用Autolayout,我們不應該手動設置框架和內容。那麼我將如何管理你上面所說的? – aytunch

+0

@aytunch我的意思是子視圖控制器的子視圖是用自動佈局管理的,但是它的視圖與父視圖控制器視圖的關係仍然需要定義。 – Austin

+0

controller.view.translatesAutoresizingMaskIntoConstraints = false爲我節省了很多時間 –