只有一半的导航栏显示为UINavigationController

时间:2011-12-02 04:15:47

标签: objective-c ios uinavigationcontroller

我创建了一个非常简单的应用程序,其中UINavigationController作为根控制器,但是当我运行它时,只显示导航栏的一半(左侧)。为什么是这样?这看起来很奇怪 - 如果我做错了什么你会认为它根本不会显示,而是只有它的一半!

控制器如下所示:

@interface RootController : UINavigationController { 
    UIWebView*  webView;
    NSMutableString       *htmlString;
}

使用相应的@property声明和@synthesize。

我没有将任何.nib用于视图控制器/视图。应用代表是:

- (BOOL)application:(UIApplication *)application  didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    RootController* theRVC = [[RootController alloc] init];
    self.window.rootViewController = theRVC;
    [theRVC release];
    [self.window makeKeyAndVisible];
    return YES;
}

控制器具有以下相关代码:

- (void)loadView
{
    webView = [[UIWebView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
    self.view = webView;
    [webView release];
}

- (void)viewDidLoad
{
    [super viewDidLoad];
}

1 个答案:

答案 0 :(得分:1)

您不应该从UINavigationController派生。

相反,从UIViewController派生您的RootController类。 然后,在应用程序委托中,初始化一个传入RootController的UINavigationController,并将其设置为windows rootViewController。

- (BOOL)application:(UIApplication *)application  didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    RootController* theRVC = [[RootController alloc] init];
    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:theRVC];
    self.window.rootViewController = navController;
    [theRVC release];
    [navController release];
    [self.window makeKeyAndVisible];
    return YES;
}