我想要的是简单,IOS上的Instagram中间选项卡打开应用程序的相机界面,但不像其他选项卡,但作为一个独立的视图控制器,当你按下取消它回到最后一个选项卡youv'曾经。
任何想法??
答案 0 :(得分:7)
编辑:为了使这段代码能够工作,你需要继承UITabBarController并实现UITabBarDelegate。所以你要添加这样的东西:
@interface MyTabsViewController : UITabBarController <UITabBarDelegate>
在Interface Builder中,您需要将标签项的标记设置为您需要的标记:
现在你可以这样做:
-(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
}
}
这将允许您为每个标签栏项目获取点击事件并添加一些自定义代码,您只需要在界面构建器中的标签按钮中添加适当的标签。例如,您可以添加代码以显示您自己的视图控制器,如上所示。
希望有所帮助!
这是另一个链接:How can i get Tabbar Item Button's Click event by clicking on TabbarItem button?
答案 1 :(得分:1)
听起来你正在尝试做的事情涉及一个TabBarViewController。您可以通过从Xcode欢迎屏幕中选择此选项来启动项目,以创建新项目:
这个&#34;选项卡式应用程序&#34; starter project将为您提供一个功能齐全且运行正常的应用程序。
您在Instagram中描述标签栏控制器的方式听起来像是您必须对标签栏控制器进行一些自定义。首先,中间的相机标签有蓝色背景。请尝试this SO article来帮助解决这个问题。
当您点击相机页面上的取消按钮并希望选择最后选择的选项卡时,请使用此方法作为起始位置以编程方式选择某个选项卡:
prefs.edit().putBoolean("prime", false).apply()
希望这能让你开始朝着正确的方向前进。
答案 2 :(得分:0)
SWIFT 4代码
按照上面@erparker的指定对Tabbarcontroller进行子类化后,使用此代码
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)
}
}
}
这里,&#34;主要&#34;是故事板名称,其中包含目标视图控制器和&#34; addNewTaskView&#34;是视图控制器在故事板上给出的视图控制器故事板ID。