iphone UIViewController基本子类未在UINavigationController中显示视图

问题描述

| 我的想法是将UIViewController子类化为后续控制器的基类,目的是向我的应用程序委托中的UINavigationController添加一个“注销”按钮。
//MyAppDelegate.m
@synthesize navigationController; //UINavigationController

//-didFinishLaunchingWithOptions...
[self.window addSubview:navigationController.view];
...
在我的MainWindow.xib中,我有一个附加的NavigationController,以DashboardViewController作为其根视图控制器的navigationController。
//BaseLogoutViewController.m

- (void)loadView {
    UIBarButtonItem *addButton = [[UIBarButtonItem alloc]
                               initWithTitle:NSLocalizedString(@\"Logout\",@\"\")
                               style:UIBarButtonItemStyleBordered
                               target:self
                               action:@selector(logoutPressed)];

   self.navigationItem.rightBarButtonItem = addButton;
   [addButton release];
   [super loadView];
}

// -(void)logoutPressed callback implemented
// viewDidLoad,didRecieveMemoryWarning,dealloc implemented

//DashboardViewController.h
@interface DashboardViewController : BaseLogoutViewController { }
DashboardViewController:UIViewController DashboardViewController:BaseLogoutViewController 好消息是它确实显示了注销按钮,但仪表板未显示其自己的视图。 BaseLogoutViewController没有自己的Nib。 我的问题是,当我继承BaseLogoutViewController的子类时,为什么它不再显示DashboardViewController的视图呢?     

解决方法

        您暗示的事情,但我想确认: 您将要在导航控制器上推/弹出多个视图控制器? 您是否希望将每个视图上的注销按钮推送到导航控制器上? 也就是说,
loadView
不是您要覆盖的内容,
viewDidLoad
是您要放置上述代码的位置, \'loadView`负责(足够多地)加载它没有执行的视图,通过覆盖它,您可以防止它发生,您想在加载视图后对其进行扩充,     ,        尝试在-(void)loadView方法中调用[super loadView]。     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...