2016-04-07 7 views
2

Я пытаюсь установить элементы для своей панели вкладок из TabBarViewController.Невозможно установить элементы панели вкладок

Однако после того, как я поставил элементы, вот ошибку я получаю:

Нагрузочного приложение из-за неперехваченное исключением «NSInternalInconsistencyException», причина: «Непосредственно модифицирования панели вкладок под управлением контроллером бара вкладки не позволил.'

Вот код:

func imageWithImageSize(image:UIImage , newSize:CGSize) -> UIImage{ 

     UIGraphicsBeginImageContextWithOptions(newSize, false, 0.0); 
     image.drawInRect(CGRectMake(0, 0, newSize.width, newSize.height)) 
     let newImage = UIGraphicsGetImageFromCurrentImageContext() 
     UIGraphicsEndImageContext() 

     return newImage 

    } 



    let image1 = imageWithImageSize(UIImage(named: "Home.png")!, newSize: CGSizeMake(30, 30)) 

    let homeItem = UITabBarItem(title: "Home", image: image1, selectedImage: image1) 


    let image2 = imageWithImageSize(UIImage(named: "Profile.png")!, newSize: CGSizeMake(30, 30)) 
    let profileItem = UITabBarItem(title: "Profile", image: image2, selectedImage: image2) 


    self.tabBar.setItems([homeItem,profileItem, homeItem, homeItem], animated: false) 

Есть ли решение вокруг него?

+0

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

+0

Похоже, вы пытаетесь изменить активную панель вкладок пункт то есть вы на tab1 и пытается изменить это, например, для. –

+0

Как мне это сделать? @PKT – dpstart

ответ

2

Вы не можете изменить их прямо, вместо этого вы можете сделать следующее.

1. Установите UITabBarController, в который вы хотите добавить вкладки. Предположим, у вас есть tabBarController с именем tabController.

2.Получить все viewController tabController.

guard var viewControllers = tabController.viewControllers else { 
     return 
    } 

3.get ваш контроллер. напр. примем примерVC.

4.Create tabBarItem для exampleVC

let performanceTabItem = UITabBarItem(title: "example", image: "tabImage", selectedImage: "selectedTabImage") 

5.Set

exampleVC.tabBarItem = performanceTabItem 

6.append exampleVC с viewControllers

viewControllers.append(exampleVC) 

7.Set viewControllers из UITabBarController.

tabController.viewControllers = viewControllers 
+0

Где вы получаете UITabBarController? В AppDelegate? В ViewController, который является вкладкой UITabBar? Где-нибудь еще? –

+0

вы можете создать собственный класс TabBarController и установить его в Storyboard. – commando24

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

  • Нет связанных вопросов^_^