open viewcontroller from tab like in instagram camera page on IOS

自闭症网瘾萝莉.ら 提交于 2019-11-28 09:30:20
erparker

Edit: In order for this code to work you'll need to subclass UITabBarController and implement the UITabBarDelegate. So you'll add something like this:

@interface MyTabsViewController : UITabBarController <UITabBarDelegate>

In Interface Builder you'll need to set the tags of your tab items to whatever you need them to be:

And now you can do something like this:

-(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
    }
}

This will allow you to get the tapped event for each of your tab bar items and do add some custom code, you just need to add the appropriate tags to your tab buttons in interface builder. For example, you could add code to show your own view controller as shown above.

Hope that helps!

And here's another link: How can i get Tabbar Item Button's Click event by clicking on TabbarItem button?

Ethan Parker

Sounds like what you're trying to do involves a TabBarViewController. You can start a project off by choosing this option from the Xcode welcome screen to create a new project:

This "Tabbed Application" starter project will give you a fully functional and running app you can build from.

The way you're describing the tab bar controller in Instagram sounds like you'll have to do a couple customizations to your tab bar controller. First, the camera tab in the middle has a blue background. Try this SO article to help with that.

When you hit the cancel button on the camera page and you want the last selected tab to be selected use this method as a starting place to programatically select a certain tab:

[self.tabBarController setSelectedIndex:2];

Hope this gets you started in the right direction.

SWIFT 4 Code

After subclassing the Tabbarcontroller as specified by @erparker above, use this code

 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)
            }

        }
    }

here, "Main" is the storyboard name which contains target view controller and "addNewTaskView" is the view controller storyboard Id given at the storyboard for a view controller.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!