2012-05-23 5 views
1

добавить UINavigationController с помощью кода, но оставить зазор сверху .. около 20 точек .. enter image description hereUINavigationController хава зазор сверху

Он исчезает при переходе на другую вкладку и вернуться на эту вкладку , но это можно увидеть около 0,2 с до NavBar переезда в нужное положение ..

Я уже искать StackOverflow, но я не могу найти решение ...

это часть моего кода:

appDeleg ate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    ..... 
    UIViewController *vc1 = [[Tab1 alloc] initWithNibName:@"Tab1" bundle:nil]; 
    UIViewController *vc2 = [[FreshEpisodeController alloc] initWithNibName:@"FreshEpisodeController" bundle:nil]; 
    UIViewController *vc3 = [[Tab3 alloc] initWithNibName:@"Tab3" bundle:nil]; 
    UIViewController *vc5 = [[DownloadListController alloc] initWithNibName:@"DownloadListController" bundle:nil]; 
    self.tabBarController = [[UITabHost alloc] init]; 
    self.tabBarController.viewControllers = [NSArray arrayWithObjects:vc2, vc1, vc3, vc5, nil]; 
    self.window.rootViewController = self.tabBarController; 
    [self.window makeKeyAndVisible]; 
    ..... 
} 

Tab3.m

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     [[self view] addSubview:mNavController.view]; 
     self.title = NSLocalizedString(@"Collection List", @"Collection List"); 
     self.tabBarItem.image = [UIImage imageNamed:@"tab3"]; 
    } 
    return self; 
} 

в Tab3.xib, у меня есть UIView и UINavigationController (mNavController)

Зазор не существует, если я изложу TAB3 показать на в первый раз (я положил его на первую вкладку) Но если я положил его на вторую вкладку, он показал, переключится ли я на Tab3.

ответ

0

набор свойств "wantsFullScreenLayout" на "YES" для контроллера представления

+0

действительно разрешает проблему при первом просмотре ... но если я переключусь на другую вкладку и вернусь ... navBar перемещается в 0,0, который попадает под строку состояния ... –

+0

ваша панель вкладок представляет новый вид на каждой вкладке. вам нужно установить это свойство во все необходимые виды или просмотреть, удерживая эту панель вкладок. Не закрывайте окно приложения, но вы можете попытаться установить его на него. – SentineL

-1

Добавьте UINavigationController (mNavController) внутри viewDidLoad метод, коды должны быть выглядеть следующим образом:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    [[self view] addSubview:mNavController.view]; 
    self.title = NSLocalizedString(@"Collection List", @"Collection List"); 
    self.tabBarItem.image = [UIImage imageNamed:@"tab3"]; 
} 

пользуются сейчас .....

+0

действительно не помогло. Фактически, значок и заголовок на TabBar не загружены ... он отображается после нажатия на вкладку –

0

попытаться сделать это так

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     [[self view] addSubview:mNavController.view]; 
     mNavController.view.frame = self.view.bounds; //here you assign the subView frame to fit superView area 
     self.title = NSLocalizedString(@"Collection List", @"Collection List"); 
     self.tabBarItem.image = [UIImage imageNamed:@"tab3"]; 
    } 
    return self; 
} 
1

установка Under Top Bars атрибут, как бесконтрольно из Атрибуты раздел ViewController может быть полезным.

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