在IOS上的Instagram摄像头页面中从标签打开视图控制器

我想要的是简单的,iOS的Instagram中间选项卡打开应用程序的相机界面,但不是像其余的选项卡,但作为独立的视图控制器,当你按下取消它回到最后一个选项卡youv'e过。

有任何想法吗??

编辑:为了使这个代码工作,你需要inheritanceUITabBarController并实现UITabBarDelegate。 所以你会添加这样的东西:

@interface MyTabsViewController : UITabBarController <UITabBarDelegate> 

在界面生成器中,您需要将标签项目的标签设置为您需要的标签:

在这里输入图像说明

现在你可以做这样的事情:

 -(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item { if(item.tag == 1) { [self presentViewController:myVC animated:YES completion:nil]; } else if(item.tag == 2) { //your code } } 

这将允许您获得每个标签栏项目的轻击事件,并添加一些自定义代码,只需将相应的标记添加到界面生成器中的标签button即可。 例如,您可以添加代码以显示您自己的视图控制器,如上所示。

希望有所帮助!

这里有另一个链接: 如何通过单击TabbarItembutton获得Tabbar项目button的Click事件?

听起来你想要做什么涉及到一个TabBarViewController。 您可以通过从Xcode欢迎屏幕中select此选项来开始一个项目,以创build一个新项目:

在这里输入图像说明

在这里输入图像说明

这个“选项卡式应用程序”初学者项目将给你一个function齐全的,可以运行的应用程序。

你在Instagram中描述标签栏控制器的方式听起来像你将不得不做一些定制您的标签栏控制器。 首先,中间的摄像机标签有一个蓝色的背景。 尝试这个SO文章来帮助。

当您点击相机页面上的取消button,并且想要select最后一个选定的选项卡时,请使用此方法作为开始位置,以编程方式select某个选项卡:

 [self.tabBarController setSelectedIndex:2]; 

希望这能让你开始正确的方向。

SWIFT 4代码

按照上面@erparker的规定inheritanceTabbarcontroller后,使用此代码

  override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) { if(item.tag==300){ if let viewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "addNewTaskView") as? AddNewTaskViewController { self.present(viewController, animated: true, completion: nil) } } } 

在这里,“Main”是包含目标视图控制器的故事板名称,“addNewTaskView”是在视图控制器的故事板上给出的视图控制器故事板Id。