gpt4 book ai didi

cocoa-touch - 我可以使用 UINavigationController 作为 UISplitViewController 的详细 View 吗?

转载 作者:行者123 更新时间:2023-12-03 00:46:44 25 4
gpt4 key购买 nike

我在 iPad 应用程序中遇到了问题,我希望 UISplitView 中的两个 View 中都有 UINavigationController。我在这里查看了其他类似的问题,但大多数链接到在线教程并不能完全解决问题。以下是重现我遇到的问题的 2 分钟演练:

  1. 从基于 Split View的应用程序模板开始,在 XCode 中创建一个新项目。
  2. 添加以下 NSLog 语句作为 DetailViewController 的 willHideViewController 方法中的第一行:

    NSLog(@"工具栏:%@",工具栏);

如果您现在运行应用程序,日志将显示 DetailViewController 的工具栏处于事件状态且运行良好。现在...

  • 打开 MainWindow.xib 并展开 SplitViewController。
  • 将导航 Controller 从库中拖到 DetailViewController 的顶部。
  • 展开新的导航 Controller 并将其中的 UIViewController 类更改为 DetailViewController。
  • 按住 Ctrl 键从 SplitViewController 拖动到 DetailViewController 并将其指定为委托(delegate)。
  • 保存 MainWindow.xib 并再次运行应用。
  • 此时,详细 View 有一个导航栏和一个空工具栏。如果您查看日志,您应该会发现工具栏为空。为什么是这样?我是否在 Interface Builder 中缺少某种连接?导航栏是否因某种原因出现问题?

    http://www.cimgf.com/2010/05/24/fixing-the-uisplitviewcontroller-template/ 上的教程不同,我想保留导航栏和工具栏(最好在纵向时工具栏位于顶部,在横向时不可见),这样当 iPad 处于纵向时我仍然有一个功能性的“后退”按钮.

    有人对解决这个问题有什么建议吗?具有这种设置的示例项目将是理想的。

    最佳答案

    您当然可以在分割 View Controller 的详细 View 上使用导航 Controller 。事实上,iPad 设置应用程序就使用了这种方法。获得此设置的最佳方法可能是在 Xcode 4.x 中创建一个新项目并选择“Master-Detail Application”模板。它将生成一个带有 2 个导航 Controller 的分割 View Controller ,一个用于左 View ,一个用于右 View 。

    对于你的工具栏问题,为了简单起见,我会在底部放置一个工具栏。您仍然可以将栏按钮项目放置在顶部导航栏上,尽管您只能将它们放置在左侧、中间或右侧。如果您需要顶部栏上有很多项目,一种方法是向详细 View 添加工具栏,并在详细 View 类的 viewWillAppear 事件中隐藏导航栏。

    以下是如何隐藏导航栏和显示工具栏的示例:

    - (void) viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    self.navigationController.toolbarHidden = NO;
    self.navigationController.navigationBarHidden = YES;
    }

    关于cocoa-touch - 我可以使用 UINavigationController 作为 UISplitViewController 的详细 View 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3762676/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com