2012-06-04 2 views
2

Это может быть глупый вопрос, но я программным образом добавил UINavigationController к моему приложению. Если возможно, я хотел просто добавить его к вершине всех моих окон, за исключением самого первого .xib. Может быть, даже просто спрятать его на моем первом .xib. Возможно ли это сделать? Я думаю о моем первом .xib-файле, который открывается для остальной части моего приложения, как обложка, и я предпочитаю, чтобы синяя полоса не отображалась наверху. Мне жаль, что я не смогу показать вам фотографии, но пока не хватает представителей. Благодаря!Скрытие UINavigationController только для первого файла .xib

Ниже приведен код, я полагаю, мне помогает обеспечить каждую страницу приложения с задней панелью:

#import "McCormick_TaylorViewController.h" 

@implementation McCormick_TaylorAppDelegate 

@synthesize window = _window; 
@synthesize viewController = _viewController; 

- (void)dealloc 
{ 
    [_window release]; 
    [_viewController release]; 
    [super dealloc]; 
} 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:  
    (NSDictionary *)launchOptions 
{ 
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] 
    autorelease]; 
    // Override point for customization after application launch. 
    self.viewController = [[[McCormick_TaylorViewController alloc] 
    initWithNibName:@"McCormick_TaylorViewController" bundle:nil] autorelease]; 
    UINavigationController * navController = [[UINavigationController alloc] 
    initWithRootViewController:self.viewController]; 
    self.window.rootViewController = navController; 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 

ответ

1

в вашем viewWillApper: метода McCormick_TaylorViewController в

просто используйте букву ...

[self.navigationController setNavigationBarHidden:NO animated:YES]; 

и в другом контроллере представления в Панели навигации Ot дисплея, то в viewWillAppear другого ViewController просто использовать сильфон код ..

[self.navigationController setNavigationBarHidden:NO animated:NO]; 
+0

У меня только 1 контроллер вида. Остальные являются подклассами. Это нормально? Должен ли я добавить вашу вторую часть кода в viewDidLoad в мои файлы .m? – Maple

+0

yes вызывающе вы можете использовать, если хотите скрыть навигационную панель только один раз, когда ее нагрузка –

+0

, но см., Для скрытия панели навигации используйте 1-й код и для видимой навигационной панели используйте второй код ... :) –

0

Используйте этот метод:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:  
(NSDictionary *)launchOptions 
{ 
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] 
autorelease]; 
// Override point for customization after application launch. 
self.viewController = [[[McCormick_TaylorViewController alloc] 
initWithNibName:@"McCormick_TaylorViewController" bundle:nil] autorelease]; 
    UINavigationController * navController = [[UINavigationController alloc] 
initWithRootViewController:self.viewController]; 
[navController.navigationBar setHiden:YES]; // hides navigation bar 
self.window.rootViewController = navController; 
[self.window makeKeyAndVisible]; 
return YES; 
} 
+0

Используя эти методы, забирает всю панель навигации на остальных страницах. У меня нет возможности вернуться. Есть ли способ спрятаться только на первой странице? – Maple

+0

В другом представлении, где вы хотите, чтобы панель навигации добавляла это в ViewDidLoad: метод [self.navigationController setNavigationBarHidden: NO animated: NO]; –

Смежные вопросы