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: "MainTabController") 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: "MainTabController") 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:@"HomeViewController" bundle:nil];
UINavigationController *navController1 = [ initWithRootViewController:viewController1];
UIViewController *viewController2 = [ initWithNibName:@"SaleViewController" bundle:nil];
UINavigationController *navController2 = [ initWithRootViewController:viewController2];
UIViewController *viewController3 = [ initWithNibName:@"SellCameraViewController" bundle:nil];
UINavigationController *navController3 = [ initWithRootViewController:viewController3];
UIViewController *viewController4 = [ initWithNibName:@"ActivityViewController" bundle:nil];
UINavigationController *navController4 = [ initWithRootViewController:viewController4];
UIViewController *viewController5 = [ initWithNibName:@"MeViewController" 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]