這種控制器只能用於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"關鍵字可以得到一些示例頁面。