代码之家  ›  专栏  ›  技术社区  ›  joelm

在UISplitViewController上显示模式视图的最佳实践

  •  3
  • joelm  · 技术社区  · 15 年前

    基于SplitViewController模板创建一个新的应用程序,它在Split View中运行良好。

    我的主屏幕是一个非拆分视图'菜单。我正在努力找出 将此“主菜单”添加到splitViewController的上方。(然后将其他非拆分视图推到主菜单上方,或 将其移除以显示并使用UISplitViewController。)

    [self.navigationController presentModalViewController:mainMenu animated:NO];
    

    以及

    [self presentModalViewController:mainMenu animated:NO];
    

    在视图中将出现,视图将加载rootViewController&detailViewController的方法。在这两种情况下,代码执行时都不会出错,但不会显示主菜单,会显示常规的detailViewController和rootViewControllers。

    (我确实创建了一个从main.xib文件中的navigationController到detailView navigationController的出口,但这没有改变任何东西。)

    我可以通过使用使这个工作,这工作,但似乎是不正确的。

    iPad_Prototype_SplitAppDelegate *delegate = (iPad_Prototype_SplitAppDelegate *) [   [UIApplication sharedApplication] delegate];
    
    [delegate.splitViewController.view addSubview:mainMenu.view];
    [delegate.splitViewController.view bringSubviewToFront:mainMenu.view];
    

    我已经看到很多回应说要以模式呈现这样一个覆盖视图,但是我似乎在splitViewController设置中找不到正确的位置或配置。谢谢你的帮助和洞察力。

    最后,这种方法是不是错了,我应该换掉detailViewController,让它在纵向模式下全屏显示,而不是为根控制器添加菜单项?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Tom Fobear    14 年前

    AppDelegate中的splitViewController与示例类似吗?这是否有帮助?

    //AppDelegate.m
    - (BOOL)application:(UIApplication *)application 
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    {  
    
    MyController *myCont = [[MyController alloc] initMainMenu];
    // mess around with myCont.view.modalPresentationStyle;
    
    [myCont setModalDelegate:self]; 
    // Create a delegate (<ModalControllerDelegate>) to dismiss view when done
    
    [self.splitViewController presentModalViewController:myCont animated:NO];
    [myCont release];
    }
    
    // for completion sake
    -(void)modalViewDismiss:(MyController *)modalView {
        [self.splitViewController dismissModalViewController:YES];
    }
    
    推荐文章