0

我想要一個UISplitViewController的效果,但是我沒有使用分割視圖模板。自定義UISplitViewController?

沒有模板就比較容易實現嗎?並使用正常的UIViewController?

我想要它的習慣大小和位置的UITableView,然後有一個習慣大小的細節視圖,然後當然肖像時進入popover和細節視圖。

希望你能幫忙,謝謝。

回答

0

在沒有Interface Builder的情況下這樣做,您可以創建一個UIViewController類。在該類的viewDidLoad方法中,創建一個UIView或一個UITableView,其中的框架起源位於您想要的位置和您想要的大小。 (在viewDidUnload方法中釋放它。)然後設置UIViewController的self.view指向這個新視圖。

self.view = [[UIView alloc] initWithFrame:...]; // edit - added in response to your question 

如果你創建了一個UIView,那麼你會想把你的UITableView放到這個新視圖中。 (如果需要,此方法可讓您向容器UIView添加更多項目。)

確保您的UIViewController符合UITableViewDelegate和UITableViewDataSource協議。添加委託和數據源方法,你應該很好去。

這個新視圖可以覆蓋其他視圖,或者您可以調整其他視圖的大小以適合旁邊的視圖。你只需要根據你想要對他們做什麼來設置框架。

如果你使用UITableViewController有一些限制,所以很多人推薦使用UIViewController。像我上面描述的那樣。你可以谷歌瞭解更多關於該主題的信息。

+0

「然後設置UIViewController的self.view指向這個新視圖。」以什麼方式指向新視圖?林相當肯定我明白你有什麼其他的說法,所以我只是按照模板中看到的代碼與你提到的額外定製,我在那裏,對吧? –

+1

在我的原始回覆中查看我的編輯。這應該有所幫助。如果你使用IB,我相信這是自動完成的,如果你把所有東西都鉤上去了。我更喜歡自己修改代碼,所以我可以看到代碼中的所有鉤子。 – Jim

0

從這個模板中獲得一個新的臨時Xcode項目並判斷你自己,如果這對你來說很複雜,那麼就需要熟悉你的(真實)代碼。

0

是的。你可以很容易地做到這一點。只需使用委託即可在左側和右側視圖(根和細節)之間傳遞消息。例如,didSelectRowAtIndexPath tableView方法可以與委託一起使用,以將消息傳遞到右側的詳細視圖。點擊左側桌子上的一個單元格,將其文本顯示爲右側的標籤。它只是一個簡單的例子。是的,你可以處理旋轉並將左側視圖發送到UIPopoverController中,從而以縱向方式提供詳細視圖全屏幕實景。

也嘗試MGSplitViewController。它爲分割視圖控制器提供了許多其他自定義選項。

相關問題