2

在我的应用程序中。我必须使用UISplitViewController并且我想做添加UISplitViewControllerUINavigationController但我不能这样做。

我也知道继承UISplitViewController是不可能的。但这对我来说很重要UINavigationController

提前致谢 :)

4

4 回答 4

6

注意: UISplitViewController 必须是应用程序的根视图(或者更具体地说,可能是窗口)。它不能存在于 UINavigationController 或其他任何东西中。

参考can-a-uisplitviewcontroller-be-the-root-controller-in-a-uinavigationcontroller链接

于 2012-08-29T06:38:34.277 回答
1

我已经能够使用开源MGSplitViewController做到这一点。

于 2012-08-29T06:43:35.557 回答
1

您可以添加MGSplitViewController委托,例如:- 在 .m 文件中

    self.splitViewController = [[[MGSplitViewController alloc] init] autorelease];

    //
    MasterPage *aMasterPage = [[[MasterPage alloc] initWithNibName:@"MasterPage" bundle:[NSBundle mainBundle]] autorelease];

    aMasterPage.splitViewController = self.splitViewController;
    self.splitViewController.delegate = aMasterPage;

    UINavigationController *navCntrl = [[[UINavigationController alloc] aMasterPage] autorelease];
    [navCntrl.navigationBar setBarStyle:UIBarStyleBlackOpaque];


    DetailPage *aDetailPage = [[[DetailPage alloc] initWithNibName:@"DetailPage" bundle:[NSBundle mainBundle]] autorelease];               


    UINavigationController *navCntrl2 = [[[UINavigationController alloc] initWithRootViewController:aDetailPage] autorelease];

    [navCntrl2.navigationBar setBarStyle:UIBarStyleBlackOpaque];
    [self.splitViewController setViewControllers:[NSArray arrayWithObjects:navCntrl, navCntrl2, nil]];

    [self.window addSubview:self.splitViewController.view];
于 2012-08-29T08:05:19.693 回答
0

请参阅此问答 -是否可以在 iOS 应用程序的导航控制器中实现拆分视图控制器?

这违反了 Apple 的准则(https://developer.apple.com/library/archive/documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/SplitViewControllers.html#//apple_ref/doc/uid/TP40011313-CH7

拆分视图控制器必须始终是您创建的任何界面的根。换句话说,您必须始终将 UISplitViewController 对象中的视图安装为应用程序窗口的根视图。然后,拆分视图界面的窗格可能包含导航控制器、选项卡栏控制器或实现界面所需的任何其他类型的视图控制器。拆分视图控制器不能以模态方式呈现。

于 2018-08-07T07:14:39.227 回答