0

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

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

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

提前致谢。

4

4 回答 4

2

在你的 appDelegatedidFinishLaunchingWithOptions方法中试试这个

    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];
于 2012-08-09T08:57:01.273 回答
2

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

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

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

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

于 2012-08-09T08:57:31.167 回答
1

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

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

于 2012-08-09T10:31:41.310 回答
0

请参阅这些教程:-

http://www.icodeblog.com/2010/04/05/ipad-programming-tutorial-hello-world/

http://www.raywenderlich.com/1040/ipad-for-iphone-developers-101-uisplitview-tutorial

这些会帮助你。

于 2012-08-09T10:29:48.330 回答