2009-09-16 57 views
3

我在我的iPhone應用程序中有一個視圖(和相應的視圖控制器),允許用戶編輯應用程序的設置。該視圖可通過菜單(表格視圖)訪問。我在我的UIViewController子類中使用pushViewController來顯示它。當我這樣做時,它就像我期望的那樣 - 導航欄出現在xib頂部,並且我在xib中留下的空白空間被佔用。建議在UINavigationController視圖和模態視圖中使用相同的xib?

我也有時使用presentModalViewController將設置視圖顯示爲模態視圖。當我這樣做時,xib的頂部從導航欄的底部開始,而不是在它的下面。

該文檔確實表示presentModalViewController將調整視圖大小以適應,所以我可以看到這是預期的行爲。但是,對我而言,這是不期望的行爲。

我可以通過設置視圖控制器設置視圖控制器不顯示導航欄,但在視圖頂部有一個奇怪的空白空間。

理想情況下,我想在這兩種情況下使用相同的xib。但是,這可能不是最佳做法?你們通常如何重複使用xib?

我在想,也許我可以讓視圖控制器將所有的控制器都轉移到模態模式下,但如果可用的話,我想要更好的東西。

回答

1

每個UIView都有一個autoresizingMask屬性。通過配置(可以在Interface Builder中完成),您應該可以重新使用該視圖,並在導航欄不在該位置時自動調整大小以佔據整個屏幕。

蘋果的文檔是在這裏:

http://developer.apple.com/iPhone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/WindowsandViews/WindowsandViews.html#//apple_ref/doc/uid/TP40007072-CH8-SW10

+0

那麼,在這種情況下,導航欄會出現在這兩種情況下 - 從一個視圖控制器堆棧加載,當演出時,爲模態的視圖。在第二種情況下,它會自動將控件移到導航欄中,無論自動調整遮罩是否在頂部有「支撐」。 但是,瞭解layoutSubviews是一件好事。 – Jim 2009-09-17 12:06:43

相關問題