ios - 我们可以在单 View 应用程序中使用基于表格的导航吗?

标签 ios

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

最佳答案

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

另一方面,您可以在点击表格行时简单地显示详细信息 View Controller :

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

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

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

基于显示/关闭的更简单解决方案的一个主要缺点是,所有以这种方式显示的 View Controller 都会立即关闭,因此您不能拥有多级导航。

编辑:

要将导航 Controller 添加到您的应用程序,只需执行如下操作:

- (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 方法来使您的主视图 Controller (在我的示例中名为 MyViewController)可见.您可以用上面的代码替换该调用以实例化导航 Controller 并将其推送到您的主视图 Controller 。

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

关于ios - 我们可以在单 View 应用程序中使用基于表格的导航吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18427706/

相关文章:

ios - 仅在 tableview 单元格中制作左下角

ios - 检索 Firebase 数据

ios - 如何在设备上流畅地进行连续的 Action 过程? (GCD)

ios - 用于多个/关系下拉选择器的 Swift iOS 解决方案

ios - swift 。日历。 veryShortWeekdaySymbols 从星期一开始

ios - 预期标识符

ios - 如何在 mapbox map 中使用动画移动注释?

ios - Xcode Swift appleWatch 读取应用程序 UserDefaults?

ios - 如何在 Swift iOS 中通过 QR 扫描仪扫描时在日历中添加事件

iphone - 查找可以在哪个版本的iOS上运行应用程序?