Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c UINavigationController只显示一半的导航栏_Objective C_Ios_Uinavigationcontroller - Fatal编程技术网

Objective c UINavigationController只显示一半的导航栏

Objective c UINavigationController只显示一半的导航栏,objective-c,ios,uinavigationcontroller,Objective C,Ios,Uinavigationcontroller,我创建了一个非常简单的应用程序,使用UINavigationController作为根控制器,但是当我运行它时,只显示导航栏的一半(左侧)。为什么会这样?这似乎很奇怪——如果我做错了什么,你可能会认为它根本不会显示出来,但恰恰是它的一半 控制器如下所示: 具有相应的@property声明和@synthesis 我没有对视图控制器/视图使用任何.nib。应用程序代理是: 控制器具有以下相关代码: 您不应该从UINavigationController派生 相反,从UIViewController派

我创建了一个非常简单的应用程序,使用UINavigationController作为根控制器,但是当我运行它时,只显示导航栏的一半(左侧)。为什么会这样?这似乎很奇怪——如果我做错了什么,你可能会认为它根本不会显示出来,但恰恰是它的一半

控制器如下所示:

具有相应的@property声明和@synthesis

我没有对视图控制器/视图使用任何.nib。应用程序代理是:

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


您不应该从
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;
}