分割視圖控制器(UISplitViewController)


這種控制器只能用於iPad,它可以在iPad屏幕中顯示兩個不同的場景:在橫向模式下,左邊顯示一個表,供用戶選擇;用戶選擇表中的元素后,詳細視圖將顯示該元素的詳細信息。如果iPad被旋轉到縱向模式,表將消失,而詳細視圖將填滿整個屏幕;要進行導航,用戶可觸摸一個工具欄按鈕,這將顯示一個包含表的彈出框。

默認情況下,UISplitViewController的一端連接到一個受導航控制器(UINavigationController)管理的表視圖(UITableViewController),這代表主場景;另一端連接到一個普通視圖控制器(UIViewController),這代表詳細場景。

可以將主場景和詳細場景替換為新的控制器,只需要刪除默認的控制器,然后按住Control鍵,並從分割視圖控制器對象拖曳到新的主場景或詳細場景,再在Xcode提示時選擇Relationship - masterViewController或Relationship - detailViewController。

主場景和詳細場景可以通過分割視圖控制器互相訪問,屬性splitViewController包含一個名為viewControllers的數組。通過使用NSArray的方法lastObject,可獲取該數組的最后一個元素(詳細信息視圖)。通過調用方法objectAtIndex,並將索引0傳遞給它,可獲取該數組的第一個元素(主視圖)。這樣,兩個視圖控制器就可交換信息了。

主視圖控制器可使用如下代碼獲取詳細視圖控制器:

[self.splitViewController.viewControllers lastObject]

而詳細視圖控制器可使用如下代碼獲取主視圖控制器:

[self.splitViewController.viewControllers objectAtIndex:0]

P.s: 在豎屏下要顯示(包含表的彈出框)工具欄按鈕,需要一些代碼修改,留待有時間回頭研究。搜索"UISplitViewController"關鍵字可以得到一些示例頁面。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM