当分配给rootViewController时,主视图控制器是否未在导航堆栈中被推入?

时间:2012-03-05 09:20:15

标签: ios uiviewcontroller

我正在尝试隐藏我navigationViewControleler层次结构的桅杆视图控制器中的工具栏。

我创建了一个新的ViewController作为RootViewController并将其hidesBottomBarWhenPushed设置为YES。

但似乎第一次启动应用程序时,此视图控制器不响应此操作,因为工具栏未隐藏。 (也许在init上,这个视图没有被推送到导航堆栈)。稍后,当来自细节控制器时,工具栏将被隐藏。

在app Delegate中我做:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

    AEMMasterViewController *masterViewController = [[[AEMMasterViewController alloc] initWithNibName:@"AEMMasterViewController" bundle:nil] autorelease];
    masterViewController.hidesBottomBarWhenPushed = YES;

    //Inicializar lista de eventos
    AEMEventosList *aux = [[AEMEventosList alloc] init];
    aux.delegate = masterViewController;

    //Asignar la lista de eventos a la variable miembro de la clase
    self.eventosList = aux;
    [aux release];

    // Comenzar la descarga de eventos desde el servidor
    [self.eventosList downloadEventos];

    self.navigationController = [[[UINavigationController alloc] initWithRootViewController:masterViewController] autorelease];
    //Configurar el toolbar
    self.navigationController.toolbarHidden = NO;

   self.window.rootViewController = self.navigationController;
    [self.window makeKeyAndVisible];

    return YES;
}

第一次加载应用时,工具栏不会隐藏在主视图中。在进入详细视图并返回之后(因此控制器被推到nab堆栈上)工具栏被隐藏。

如何设置主视图的工具栏在启动时隐藏? 第一次加载视图时,此主视图控制器是否未在导航堆栈上按下,这就是它不响应hidesBottonBarWhenPushed的原因?

1 个答案:

答案 0 :(得分:1)

self.navigationController.toolbarHidden = NO; 

您强制在此处显示工具栏。将hidden设为NO。在初次启动时,如果要隐藏工具栏,则应为YES。或者尝试完全删除此行,并查看它是否符合hidesBottomBar设置 - 此时您将覆盖它。