Objective c UINavigationController只显示一半的导航栏
我创建了一个非常简单的应用程序,使用UINavigationController作为根控制器,但是当我运行它时,只显示导航栏的一半(左侧)。为什么会这样?这似乎很奇怪——如果我做错了什么,你可能会认为它根本不会显示出来,但恰恰是它的一半 控制器如下所示: 具有相应的@property声明和@synthesis 我没有对视图控制器/视图使用任何.nib。应用程序代理是: 控制器具有以下相关代码:Objective c UINavigationController只显示一半的导航栏,objective-c,ios,uinavigationcontroller,Objective C,Ios,Uinavigationcontroller,我创建了一个非常简单的应用程序,使用UINavigationController作为根控制器,但是当我运行它时,只显示导航栏的一半(左侧)。为什么会这样?这似乎很奇怪——如果我做错了什么,你可能会认为它根本不会显示出来,但恰恰是它的一半 控制器如下所示: 具有相应的@property声明和@synthesis 我没有对视图控制器/视图使用任何.nib。应用程序代理是: 控制器具有以下相关代码: 您不应该从UINavigationController派生 相反,从UIViewController派
您不应该从
UINavigationController
派生
相反,从UIViewController派生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;
}
谢谢从UINavigationController派生是否总是不正确?很少需要从UINavigationController派生。如果是这样的话,那就是定制导航控制器本身的某些方面,而不是定义内容视图控制器。
- (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];
}
- (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;
}