在拆分视图控制器 iOS8 目标 C 中从右侧打开主视图

Posted

技术标签:

【中文标题】在拆分视图控制器 iOS8 目标 C 中从右侧打开主视图【英文标题】:Open master view from right in Split View Controller iOS8 Objective C 【发布时间】:2016-09-07 05:03:54 【问题描述】:

我已经制作了 Split View,它可以包含 MasterDetails 视图控制器。 现在我想从右侧打开主视图控制器。 我在 ios 8 中使用 Objective C。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 
    //Figure out that we're on an iPad.
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) 
        //Grab a reference to the UISplitViewController
        UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;


        splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible;
        //splitViewController.preferredInterfaceOrientationForPresentation = UIInterfaceOrientationLandscapeRight;
//        splitViewController.interfaceOrientation =

        //Grab a reference to the RightViewController and set it as the SVC's delegate.
        RightViewController *rightViewController = [splitViewController.viewControllers lastObject];
        splitViewController.delegate = rightViewController;

        //Grab a reference to the LeftViewController and get the first monster in the list.
        UINavigationController *leftNavController = [splitViewController.viewControllers objectAtIndex:0];
        LeftViewController *leftViewController = (LeftViewController *)[leftNavController topViewController];
        Monster *firstMonster = [[leftViewController monsters] objectAtIndex:0];





        //Set it as the RightViewController's monster.
        [rightViewController setMonster:firstMonster];

        //Set the RightViewController as the left's delegate.
        leftViewController.delegate = rightViewController;
    

    return YES;

请帮忙。

【问题讨论】:

希望这个对你有帮助***.com/documentation/ios/4844/… 链接失效 【参考方案1】:

正如您所提到的,您需要将masterview 更改为左侧并将detailsview 更改为右侧。据我所知,这是不可能通过代码实现的。

虽然我找到了一种方法,我们可以通过对故事板进行一些更改来实现它。

最初设置UISplitViewController 时,您会看到如下图所示。 (见红框内的连接)

您将看到第一个 masterviewcontroller 与 master 和 Detailviewcontroller 与导航控制器连接。

现在将连接更改为 master 而不是 details,反之亦然。这是更改后的新图像。

执行此更改后,如果您运行代码,它将在右侧显示母版页,在左侧显示详细信息页。

重要提示:

如果您不想执行此步骤,也可以将母版页视为详细信息页,将详细信息页视为母版页。并替换两个文件中的代码,作为实现这一解决方案的第二种解决方案。

我希望它能指导你。

【讨论】:

以上是关于在拆分视图控制器 iOS8 目标 C 中从右侧打开主视图的主要内容,如果未能解决你的问题,请参考以下文章

拆分视图控制器:如何将主视图控制器连接到详细视图控制器?

在Splitviewcontroller中从左到右改变Masterview的位置

如何为拆分视图控制器创建启动页面

自定义尺寸 iPad 拆分视图

在ios中从uitableviewcell拖放到uiimage视图

在 Splitview 中从一个 Detail View 控制器导航到另一个 Detail VC