我想要一個UISplitViewController的效果,但是我沒有使用分割視圖模板。自定義UISplitViewController?
沒有模板就比較容易實現嗎?並使用正常的UIViewController?
我想要它的習慣大小和位置的UITableView,然後有一個習慣大小的細節視圖,然後當然肖像時進入popover和細節視圖。
希望你能幫忙,謝謝。
我想要一個UISplitViewController的效果,但是我沒有使用分割視圖模板。自定義UISplitViewController?
沒有模板就比較容易實現嗎?並使用正常的UIViewController?
我想要它的習慣大小和位置的UITableView,然後有一個習慣大小的細節視圖,然後當然肖像時進入popover和細節視圖。
希望你能幫忙,謝謝。
在沒有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。像我上面描述的那樣。你可以谷歌瞭解更多關於該主題的信息。
從這個模板中獲得一個新的臨時Xcode項目並判斷你自己,如果這對你來說很複雜,那麼就需要熟悉你的(真實)代碼。
是的。你可以很容易地做到這一點。只需使用委託即可在左側和右側視圖(根和細節)之間傳遞消息。例如,didSelectRowAtIndexPath tableView方法可以與委託一起使用,以將消息傳遞到右側的詳細視圖。點擊左側桌子上的一個單元格,將其文本顯示爲右側的標籤。它只是一個簡單的例子。是的,你可以處理旋轉並將左側視圖發送到UIPopoverController中,從而以縱向方式提供詳細視圖全屏幕實景。
也嘗試MGSplitViewController。它爲分割視圖控制器提供了許多其他自定義選項。
「然後設置UIViewController的self.view指向這個新視圖。」以什麼方式指向新視圖?林相當肯定我明白你有什麼其他的說法,所以我只是按照模板中看到的代碼與你提到的額外定製,我在那裏,對吧? –
在我的原始回覆中查看我的編輯。這應該有所幫助。如果你使用IB,我相信這是自動完成的,如果你把所有東西都鉤上去了。我更喜歡自己修改代碼,所以我可以看到代碼中的所有鉤子。 – Jim