菜鸟教程小白 发表于 2022-12-11 19:17:05

iOS:重用 TabBarController 并删除旧 Controller 的一些选项卡


                                            <p><p>我有一个包含 5 个项目的 TabBarController。我需要在另一个地方重用这个选项卡 View 并删除一些项目。我怎样才能做到这一点。只有 isEnabled 按钮用于以编程方式执行此操作。但我需要隐藏标签项。 </p>

<p>案例1:需要显示storyboard中的所有标签项</p>

<pre><code>@IBAction func partialAction(_ sender: UIButton) {
    letpartialTabController = storyboard?.instantiateViewController(withIdentifier: &#34;MainTabController&#34;) as! MainTabController
    partialTabController.selectedViewController = partialTabController.viewControllers?

    present(partialTabController,animated: true,completion: nil)

}
</code></pre>

<p>案例 2:仅显示应用程序另一部分中的几个选项卡</p>

<pre><code>@IBAction func partialAction(_ sender: UIButton) {
    letpartialTabController = storyboard?.instantiateViewController(withIdentifier: &#34;MainTabController&#34;) as! MainTabController
    partialTabController.selectedViewController = partialTabController.viewControllers?

    // Can I remove some of the tab item using code here

    present(partialTabController,animated: true,completion: nil)

}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>对于 objective-c
通过单个 TabBarController 在不同的屏幕上设置不同的标签栏...
为UITabBarController创建扩展类并创建自定义功能栏</p>

<pre><code>   -(void)customTabBar {
];//];
init]];
UITabBar *tabBar = self.tabBar;
UITabBarItem *item0 = ;
UITabBarItem *item1 = ;
UITabBarItem *item2 = ;
UITabBarItem *item3 = ;
UITabBarItem *item4 = ;

;
imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];

;
imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];

;
imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
;
imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
;
imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];


;
;
;
;
;
</code></pre>

<p>}</p>

<p>现在您可以根据自己的需要创建类实例并使用选项卡 ....</p>

<p>并在 appdelegate 中创建你的类的实例,并根据你创建添加选项卡的函数</p>

<p>为扩展类创建实例</p>

<pre><code> @property (strong, nonatomic) CustomTabBarViewController *tabBarController;


-(void)createTabBarContoller
{
//Created all tabs controller to be the default for tabs
UIViewController *viewController1 = [
initWithNibName:@&#34;HomeViewController&#34; bundle:nil];
   UINavigationController *navController1 = [ initWithRootViewController:viewController1];

UIViewController *viewController2 = [ initWithNibName:@&#34;SaleViewController&#34; bundle:nil];
UINavigationController *navController2 = [ initWithRootViewController:viewController2];

UIViewController *viewController3 = [ initWithNibName:@&#34;SellCameraViewController&#34; bundle:nil];
UINavigationController *navController3 = [ initWithRootViewController:viewController3];

UIViewController *viewController4 = [ initWithNibName:@&#34;ActivityViewController&#34; bundle:nil];
UINavigationController *navController4 = [ initWithRootViewController:viewController4];

UIViewController *viewController5 = [ initWithNibName:@&#34;MeViewController&#34; bundle:nil];
UINavigationController *navController5 = [ initWithRootViewController:viewController5];

self.tabBarController = [ init];
self.tabBarController.viewControllers = @;

;
;
self.tabBarController.tabBar.layer.borderWidth = 0.50;
self.tabBarController.tabBar.layer.borderColor = .CGColor;
self.tabBarController.tabBar.clipsToBounds = true;

;
}
</code></pre>

<p>其实我也在用swift,但是现在我没有swift代码...</p></p>
                                   
                                                <p style="font-size: 20px;">关于iOS:重用 TabBarController 并删除旧 Controller 的一些选项卡,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/47261475/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/47261475/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS:重用 TabBarController 并删除旧 Controller 的一些选项卡