无法设置选项卡栏项目

4

我正在尝试从TabBarViewController设置标签栏的项目。

然而,一旦我设置完项目,就会出现以下错误:

终止应用程序,原因:“不允许直接修改由选项卡条控制器管理的选项卡条。”

下面是代码:

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)

有没有解决方式?

错误提示:在使用选项卡时无法修改选项卡项目。 - Prashant Tukadiya
似乎你正在尝试修改一个活动标签栏项目,也就是说你正在标签1上并且想要修改它。例如。 - Mahendra
我应该怎么做呢?@PKT - dpstart
你把这段代码放在哪儿了?@dpstart - Prashant Tukadiya
1个回答

2

您不能直接修改它们,但可以执行以下操作:

1.获取要添加选项卡的UITabBarController。假设您有一个名为tabController的tabBarController。

2.获取tabController的所有viewController。

 guard var viewControllers = tabController.viewControllers else {
      return
    }

3. 获取你的视图控制器,例如我们以 exampleVC 为例。

4. 为 exampleVC 创建 tabBarItem。

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

5.set

exampleVC.tabBarItem = performanceTabItem

6.将示例VC与视图控制器合并

viewControllers.append(exampleVC)

7.设置UITabBarController的viewControllers。

tabController.viewControllers = viewControllers

你从哪里获取UITabBarController?在AppDelegate中吗?在作为UITabBar选项卡的ViewController中吗?还是其他地方? - Brian Ogden
你可以拥有一个自定义的TabBarController类,并在Storyboard中设置它。 - Surjeet Rajput

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接