HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 在Objective-C中将UINavigationController添加到我的segue.destinationViewController大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个基于SplitViewController的应用程序,它调用其他人UIViewController,通过详细信息部分中的替换显示它们…

我发送参数,信息,对象,一切正常,使用MasterViewController中的segues

但是我的一些UIViewControllers通过使用Segues与其他UIViewControllers交互,因此,为了使它们正常工作,我需要将它们嵌入到UINavigationController中

我的问题是:

当正在执行segue时,如何将uINavigationController添加到我的segue.desTinationViewController:

>从masterViewController传递我的参数
>允许我的UIViewControllers通过使用Segues与其他ViewControllers交互

我想在一个解决方案中:
– 通过在MasterViewController中创建自定义委托或协议来解决参数问题
-UINavigationControllers问题是通过在其中嵌入我的UIViewControllers在故事板中以设计模式添加它们

但我需要设置我的desTinationViewController UISplitViewController的委托,用于显示以纵向模式@L_785_3@masterViewController的按钮…

如果我在prepareForSegue方法中设置它,让UINavigationControllers保持我的ViewControllers,我将把UISplitViewController的委托设置为UINavigationController而不是

在此先感谢您的帮助

编辑:这是我找解决它的方式:

首先我给一个按钮分配了一个IBACtion,如果我的设备不是iPad,它会做正常的…

- (IBACtion)openExecutives:(id)sender {
    if ([[[UIDevice currentDevice]model] hasPrefix:@"iPad"]) {
        UsersListVC    *rightViewController    = [self.storyboard instantiateViewControllerWithIdentifier:@"UsersListVC"];
        [self showSplitViewController:rightViewController];
    }
    else
        [self performSegueWithIdentifier:@"viewSceneExecutives" sender:self];
}

这是我用自定义细节创建SplitView的功能

-(void)showSplitViewController:(id)rightViewController{

    UIStoryboard *mainStoryboard        = [UIStoryboard storyboardWithName:@"iPad2" bundle: nil];

    UINavigationController  *leftNavController;
    UINavigationController  *rightNavController;

    MainMenuVC      *leftViewController     = [mainStoryboard instantiateViewControllerWithIdentifier:@"MainMenuVC"];

    leftNavController                   = [[UINavigationController alloc] initWithRootViewController:leftViewController];
    rightNavController                  = [[UINavigationController alloc] initWithRootViewController:rightViewController];

    leftNavController.toolbarHidden     = falSE;
    rightNavController.toolbarHidden    = falSE;


    UISplitViewController   *splitViewController    = [[UISplitViewController alloc] init];

    splitViewController.viewControllers             = [NSArray arrayWithObjects:leftNavController,rightNavController,nil];

    splitViewController.delegate        = rightViewController;

    self.view.window.rootViewController = splitViewController;
}

我所做的就是通过创建一个需要参数的函数(UIViewController)从重新开始重绘splitViewController

@L_450_20@

您应该在嵌入在导航控制器中的IB中设置控制器.当您想从主视图控制器访问内容控制器时,您只需使用导航控制器属性topViewController来获取引用.所以在prepareForSegue:中,你可以这样做:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
      UINavigationController *dest = (UINavigationController *)segue.desTinationViewController;
      self.detailViewController = (DetailViewController *)dest.topViewController;
      self.splitViewController.delegate = self.detailController;
}

大佬总结

以上是大佬教程为你收集整理的ios – 在Objective-C中将UINavigationController添加到我的segue.destinationViewController全部内容,希望文章能够帮你解决ios – 在Objective-C中将UINavigationController添加到我的segue.destinationViewController所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。