2016-02-05 4 views
0

Я работаю над проектом чата, в котором я должен использовать UITabBar. Я использую раскадровку в этом проекте, но согласно требованию я добавил пользовательский TabBar в проекте, чтобы смонтировать его в верхней части представления. Теперь проблема в Custom TabBar хорошо отображается в верхней части окна, но когда я нажимаю на вкладки, она показывает только черный экран, а не показывает ViewControllers. Я делюсь своим кодом, пожалуйста, предложите мне его решение.IOS: добавление viewcontroller в пользовательский TabBar в ios

мой .h файл

@interface TabBar : UITabBarController 
{ 

} 
@property(strong,nonatomic) UITabBarController *tabbarcontroller; 
@property(strong,nonatomic) ChatListVC *chatlist; 
@property(strong,nonatomic) ContactListVc *contactlist; 
@property(strong,nonatomic) FindfriendsVC *findfriends; 

@end 

мой .m файл

@implementation TabBar 

    - (void)viewDidLoad 

     { 
      [super viewDidLoad]; 
      // Do any additional setup after loading the view. 
     // self.navigationItem.hidesBackButton=YES; 

      self.title = @"Chat Home Page"; 

      self.navigationController.navigationBar.backgroundColor = [UIColor blueColor]; 

      _chatlist = [ChatListVC new]; 
      _contactlist = [ContactListVc new]; 
      _findfriends = [FindfriendsVC new];  //initWithNibName:@"FindfriendsVC" bundle:nil];//[FindfriendsVC new]; 

      self.tabbarcontroller = [[UITabBarController alloc]init]; 

      self.viewControllers = [NSArray arrayWithObjects:_chatlist,_contactlist,_findfriends, nil]; 

      //self.navigationController.navigationBar.frame.size.height; 
      //UITabBar *tabBar = self.tabBarController.tabBar; 
      //CGFloat topBarOffset = self.topLayoutGuide.length; 
      self.tabBar.frame =CGRectMake(0,44,self.view.frame.size.width,50); 

      UITabBarItem *item0 = [self.tabBar.items objectAtIndex:0]; 
      UITabBarItem *item1 = [self.tabBar.items objectAtIndex:1]; 
      UITabBarItem *item2 = [self.tabBar.items objectAtIndex:2]; 

      item0.title = @"Chat List"; 
      item1.title = @"Contacts"; 
      item2.title = @"Find Friends"; 

      [item0 setFinishedSelectedImage:[UIImage imageNamed:@"chatlist.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"chatlist.png"]]; 
      [item1 setFinishedSelectedImage:[UIImage imageNamed:@"contacts.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"contacts.png"]]; 
      [item2 setFinishedSelectedImage:[UIImage imageNamed:@"findfriends.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"findfriends.png"]]; 

     } 

снимок выходе enter image description here

+0

Вы добавили Viewcontrollers в Tabbarcontroller в раскадровки? – OMK

+0

Я использую пользовательскую вкладку здесь –

+0

Просмотр контроллеров View не загружается. (т. е. просмотр для ChatListVC не загружается из раскадровки) – OMK

ответ

2

Похоже, ваши контроллеры ракурса не инициализирован должным образом.

Если просматривать контроллеры находятся в раскадровке, попробуйте заменить

_chatlist = [ChatListVC new]; 
_contactlist = [ContactListVc new]; 
_findfriends = [FindfriendsVC new]; 

с:

_chatlist = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"ChatListIdentifier"]; 
_contactlist = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"ContactListIdentifier"]; 
_findfriends = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"FindfriendsIdentifier"]; 

Если строка идентификатор собственный идентификатор, который вы создали в раскадровке.

+0

идентификатор означает идентификатор раскадровки? –

+0

Да, Раскадровка ID –

+0

спасибо, что это работает :) –

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