0

我创建了具有一些基本功能的单视图 iOS 应用程序。并在简单的视图控制器中添加了表格视图现在我想使用带有行导航的表格视图,例如(pushcontroller 和 popcontroller)是可能的,如果是,我们如何设置它。

4

1 回答 1

2

如果您需要完全支持推送/弹出操作,我会使用导航控制器。

另一方面,您可以在点击表格行时简单地展示您的详细视图控制器:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

  MyViewController* detailController = <CREATE THE VIEW CONTROLLER>;
  [self presentViewController:detailController animated:YES completion:NULL];
}

在这种情况下,您detailController将需要实现一种导航栏或其他机制,让用户关闭控制器(通过dismissViewControllerAnimated:completion:)并返回表格视图。(使用导航控制器会以规范的方式处理此问题。)

基于呈现/关闭的更简单解决方案的一个主要缺点是,以这种方式呈现的所有视图控制器都会被立即关闭,因此您不能拥有多个导航级别。

编辑:

要将导航控制器添加到您的应用程序,只需执行以下操作:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  ...
  MyViewController *myViewController = [[MyViewController alloc] initWithNibName:nil bundle:nil];

  ...

  self.navigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];

  self.window.rootViewController = self.navigationController;

  [self.navigationController pushViewController:myViewController animated:YES];

  ...

  [self.window makeKeyAndVisible];
  return YES;
}

目前,您的didFinishLaunchingWithOptions方法应该使用该addSubview方法使您的主视图控制器(MyViewController在我的示例中命名)可见。您可以用上面的代码替换该调用以实例化导航控制器并将其推送到您的主视图控制器。

或者,您可以使用基于导航的模板创建一个新的 Xcode 项目,然后将所有源文件移过来。

于 2013-08-25T10:00:24.107 回答