我们可以将导航控制器放在iPad应用程序的MasterView中吗?

时间:2012-08-09 06:09:21

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

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

我不知道如何实现这一目标。

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

提前致谢。

4 个答案:

答案 0 :(得分:2)

在你的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];

答案 1 :(得分:2)

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

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

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

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

答案 2 :(得分:1)

是的,你可以。 Apple提供了一个名为MultipleDetailViews

的示例代码

它显示了如何使用委托在主数据和详细信息之间进行通信。

答案 3 :(得分:0)