【问题标题】:Can we put navigationcontroller in MasterView in iPad Application?我们可以将navigationcontroller 放在iPad 应用程序的MasterView 中吗?
【发布时间】:2012-08-06 08:07:03
【问题描述】:

我主要从事 iPhone 应用程序的工作。现在我需要构建一个 iPad 应用程序。我需要将 NavigationController 放在 iPad 的 Master Detail View 的 MasterView 中,就像我们在 iPhone 的 UITableView 中所做的那样。我的意思是当用户选择一个特定的行时,它应该导航到另一个带有新填充数据的 tableview。用户可以通过按后退按钮转到上一个。此外,在每个选择中,我都需要在详细视图中更改图像。

我没有任何想法来实现这一点。

请提供任何建议或任何示例代码。

提前致谢。

【问题讨论】:

    标签: objective-c ios ipad uinavigationcontroller master-detail


    【解决方案1】:

    在你的 appDelegate didFinishLaunchingWithOptions 方法中试试这个

        MasterViewController *masterViewController = [[[MasterViewController alloc] initWithNibName:@"MasterViewController_iPad" bundle:nil] autorelease];
        UINavigationController *masterNavigationController = [[[UINavigationController alloc] initWithRootViewController:masterViewController] autorelease];
    
        DetailViewController *detailViewController = [[[DetailViewController alloc] initWithNibName:@"DetailViewController_iPad" bundle:nil] autorelease];
        UINavigationController *detailNavigationController = [[[UINavigationController alloc] initWithRootViewController:detailViewController] autorelease];
    
        self.splitViewController = [[[UISplitViewController alloc] init] autorelease];
        self.splitViewController.delegate = detailViewController;
        self.splitViewController.viewControllers = [NSArray arrayWithObjects:masterNavigationControlle, detailNavigationController, nil];
    
        self.window.rootViewController = self.splitViewController;
        [self.window makeKeyAndVisible];
    

    【讨论】:

      【解决方案2】:

      这当然是可能的。您可以在拆分视图控制器的主视图和详细视图中显示的内容没有限制。

      将拆分视图视为仅显示两个视图控制器的视图。它们可以包含任何东西。

      如果我理解您要正确实现的目标,那么您要做的是创建一个带有 UITableView 的视图控制器,它将在左列中显示数据。这个 View Controller 还应该有一个 UINavigationController,当您在表格中选择某些内容时,它将推送另一个 View Controller。

      到目前为止,一切都很好。细节视图中没有任何变化,因为它实际上不知道或以任何方式连接到主视图。当用户在主视图中向下移动了足够多的步骤,并且您想要更改详细视图 - 然后您可以设置导航控制器的 viewControllers 属性以使用您想要显示的任何视图控制器更新详细视图。

      【讨论】:

        【解决方案3】:

        是的,你可以。苹果提供了一个名为MultipleDetailViews的示例代码

        它展示了如何使用委托在 master 和 detail 之间进行通信。

        【讨论】:

          【解决方案4】:
          猜你喜欢
          • 2020-07-21
          • 1970-01-01
          • 2011-10-19
          • 1970-01-01
          • 2011-05-17
          • 1970-01-01
          • 2012-07-31
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多