2012-09-01 157 views
3

使用MGSplitViewController,我該如何更改詳細視圖控制器? 有一個屬性聲明:MGSplitViewController更改詳細視圖控制器

@property (nonatomic, retain) IBOutlet UIViewController *detailViewController; // convenience. 

splitVC.detailViewController = myVC;沒有影響。相反,我必須做splitVC.viewControllers = @[masterVC, myVC];。 它的作品,但這是正確的方式?

謝謝!

回答

2

你是對的。從UISplitViewController參考:

拆分視圖控制器都有自己沒有顯著接口。其作業是管理其兩個子視圖控制器的演示,並在不同的方向之間轉換。

也:

必須分配兩個視圖控制器拆分視圖控制器。 通常你在故事板中配置這些視圖控制器;如果 以編程方式創建分割視圖控制器,您可以使用 的viewControllers屬性爲它們分配

+0

謝謝,只是想確認:)。有點令人困惑,因爲該財產被宣佈爲保留,而不是隻讀 – 0xSina

-3

不,它是不正確的做法,而不是分配你的主人,並詳細視圖 - 控制在navigationcontroller像 UINavigationController *nav1 = [UINavigationController alloc]initwithrootviewcontroller:masterviewcontroller]; 同樣NAV2爲detail.Then寫

splitViewController = [[UISplitViewController alloc] init]; 
splitViewController.viewControllers = [NSArray arrayWithObjects:nav1,nav2, nil]; 
splitViewController.delegate = detailViewController; 

完蛋了。 希望有所幫助。

1

當使用MGSplitViewController,一個方法來設置detailViewController而不重置一切(這似乎是非常低效)是設置detailViewController,然後調用layoutSubviews

splitViewController.detailViewController = myVC; 
[splitViewController layoutSubviews]; 

這避免了移除主視圖控制器的觀點的浪費開銷然後重置它。

希望這會有所幫助!

相關問題