【问题标题】:add a Navigation controller to a UIViewController将导航控制器添加到 UIViewController
【发布时间】:2011-08-15 21:06:54
【问题描述】:

我刚刚完成了有关如何从基于窗口的应用程序项目开始创建导航控制器的教程。

现在,我正在尝试弄清楚如何将我在教程中使用的方法与具有标签栏控制器的根视图一起应用。

我已经设置了一个标签栏控制器,再次使用基于窗口的应用程序项目,并添加了四个标签栏项目,这些项目链接到它们各自的 UIViewController 类/nib。

我可以像在基于窗口的教程中那样将导航控制器添加到 UIViewController 类吗?

这是我自己创建导航控制器的方法:

#import <UIKit/UIKit.h>

@interface NavAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    UINavigationController *navController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UINavigationController *navController;

@end




#import "NavAppDelegate.h"

@implementation NavAppDelegate

@synthesize window;
@synthesize navController;

#pragma mark -
#pragma mark Application lifecycle

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    // Override point for customization after application launch.
    [self.window addSubview:navController.view];
    [window makeKeyAndVisible];

    return YES;
}



etc...

【问题讨论】:

  • 转到您的 Interface Builder 并查看标签栏控制器。那里有四个选项卡,并且对于每个选项卡,您可能都有一个视图控制器。不要使用视图控制器,而是尝试在标签栏顶部拖动导航控制器并删除以前的视图控制器。现在你应该有一个导航控制器,里面有一个视图控制器。

标签: iphone objective-c ios


【解决方案1】:

UINavigationControllerUITabBarController 都是 控制器的控制器,即它们管理多个 UIViewControllersUIViewControllers 反过来管理视图。所以你的问题的标题确实需要修改。

标准设置是这样的:UITabBarController 是根控制器。每个选项卡控制要么 UIViewController UINavigationController,后者又管理UIViewControllers

因此,您将UIViewControllersUINavigationControllers 添加到您的标签栏项目。

因此,您的问题的直接答案是:。您不能UINavigationController 添加到您的UIViewController,而是相反。

【讨论】:

  • 好的,所以我只是用 UINavigationController 更改了我的 UIViewController 类。谢谢!
  • 但是等等...我需要在我的笔尖中设置一个从我的班级到我的导航控制器的插座吗?
  • 您可以直接在 IB 中添加导航控制器对象并将其链接到适当的视图控制器。不完全是IBOutlet
猜你喜欢
  • 1970-01-01
  • 2018-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
相关资源
最近更新 更多