objective-c - 在哪里创建 navigationController 以便我可以使用 pushViewController 函数

标签 objective-c ios uinavigationcontroller

我使用“选项卡式应用程序模板”在 Xcode 4 中创建了一个基于选项卡的应用程序。

在其中一个 View Controller 中,我有一个 TableView 。现在,当用户单击表格显示的项目时,我希望出现一个新 View 。

我尝试使用:

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

但这行不通。进一步检查后,我发现 self.navigationController 为空,所以我想我必须在某处创建它。

你能告诉我在哪里创建它吗?

我猜它会在 Application Delegate 的 applicationDidFinishLaunching 方法中?这是它当前的样子(这是由 Xcode 自动生成的):

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    return YES;
}

非常感谢任何帮助,我已经坚持了一段时间,但我似乎无法找到如何做到这一点......

最佳答案

最好的办法是将 View 嵌入到导航 Controller 中。如果您使用 Storyboard,请选择 View (确保它以蓝色勾勒出轮廓),然后转到 Editor->Embed in Navigation Controller。

如果您是通过代码完成的,那么在您最初创建此 View 的位置,创建一个 UINavigationController 并使用此 View 的 View Controller 对其进行初始化。

关于objective-c - 在哪里创建 navigationController 以便我可以使用 pushViewController 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8620269/

相关文章:

objective-c - 如何在不需要时摆脱 UIAppearance?

ios5 - 隐藏 ios 5 导航 Controller 中的默认导航栏

objective-c - 关闭“使用自动版式”会导致应用仅以纵向模式运行

ios - 使用 Parse 和 AWS Cognito

ios - 覆盖 UICollectionView 子类中的委托(delegate)和数据源 setter

ios - 导致我得到的文档错误 CognitoIdentityCredentials 无权执行 : dynamodb:UpdateItem on resource

ios - 找不到 CCTargetTouchDelegate/CCStandardTouchDelegate 的协议(protocol)声明

ios - UITableViewCell 在滚动时显示错误的数据

ios - 如何创建像 BestBuy App 这样的自定义导航栏?

ios - 如何在 Xcode 中的 UINavigationController 上创建 BackButton?