我创建了具有一些基本功能的单 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/