0

我的问题是关于UISplitViewiOS SDK5.1 中的基于应用程序的。

  • 该应用程序基于拆分视图。
  • 说明应用程序时一切正常,同时使用根主视图和详细视图。
  • 稍后,我使用 segue 类型对 master-和 detail 视图进行 segue:“replace master split”

这是麻烦开始的地方:

  • 如果上述所有情况都发生在纵向模式下,则不会显示显示主视图的栏按钮。
  • 切换到横向模式并返回可以解决问题。

masterVC 将自己设置为splitview.delegatein -(void)viewDidLoad,我怀疑为时已晚,因此无法及时调用委托方法。

所以我尝试将委托设置为-(void)prepareForSegue...,这并没有改变行为。

4

1 回答 1

0

在您的 App Delegate 的 didFinishLaunchingWithOptions 方法中设置 UISplitViewController 委托。

if ( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {

    UISplitViewController *splitViewController = (UISplitViewController*)self.window.rootViewController;
 UITableViewController *yourViewController = (UITableViewController*)[splitViewController.viewControllers objectAtIndex:0];
splitViewController.delegate = yourViewController;

 }

确保 yourViewController 符合 UISplitViewControllerDelegate 协议。

编辑:另外,如果您的 MasterViewController 嵌入在导航控制器中,您将必须通过首先访问 UINavigationController 然后访问它的 topViewController 来访问它。

于 2012-07-14T20:26:49.020 回答