如何在 uitabbarcontroller 中的 uibutton 单击事件上推送其他视图控制器?

Posted

技术标签:

【中文标题】如何在 uitabbarcontroller 中的 uibutton 单击事件上推送其他视图控制器?【英文标题】:How to Push otherviewcontroller on uibutton click event in uitabbarcontroller? 【发布时间】:2017-01-28 10:48:16 【问题描述】:

这是我的UITabBarController 代码 在appdelegate.m 文件中

UITabBarController *tbController =(UITabBarController *)self.window.rootViewController;
UITabBar *tbAppearence = [UITabBar appearance];

现在,我在UITabBarController 视图之一中有三个button,当我单击button 之一时,屏幕将重定向到其他视图,但不能。

这是我的按钮操作代码 在 UserInfoViewController.m 文件中

- (IBAction)AskQuestionButtonPressed:(id)sender

    NSLog(@"Ask Button pressed");
    AskQuestion *AskQuestionObject = [self.storyboard instantiateViewControllerWithIdentifier:@"AskQuestionID"];
    [self.navigationController pushViewController:AskQuestionObject animated:YES];    

请帮助我,我是 ios 新手。

【问题讨论】:

检查UIVC标识符。 同样的“AskQuestionID”,但什么也没发生。 然后添加您的标签条码。我的意思是当你在标签栏中添加 Vc 时。 无法理解你。请具体说明,因为我是 ios 开发领域的新手。 检查这个样本并检查你的样本是否符合这个,因为这是工作代码。它对你有很大帮助。 sample 【参考方案1】:

你必须像下面的代码一样在你的标签栏中添加你的UIViewcontroller

这是我的UITabBarController 子类的示例:

- (void)viewDidLoad 
    [super viewDidLoad];

    UIViewController *view1 = [[UIViewController alloc] init];
    UIViewController *view2 = [[UIViewController alloc] init];
    UIViewController *view3 = [[UIViewController alloc] init];

    NSMutableArray *tabViewControllers = [[NSMutableArray alloc] init];
    [tabViewControllers addObject:view1];
    [tabViewControllers addObject:view2];
    [tabViewControllers addObject:view3];

    [self setViewControllers:tabViewControllers];
    //can't set this until after its added to the tab bar
    view1.tabBarItem = 
      [[UITabBarItem alloc] initWithTitle:@"view1" 
                                    image:[UIImage imageNamed:@"view1"] 
                                      tag:1];
    view2.tabBarItem = 
      [[UITabBarItem alloc] initWithTitle:@"view2" 
                                    image:[UIImage imageNamed:@"view3"] 
                                      tag:2];
    view3.tabBarItem = 
      [[UITabBarItem alloc] initWithTitle:@"view3" 
                                    image:[UIImage imageNamed:@"view3"] 
                                      tag:3];      

【讨论】:

UIViewController *view1 = [[AskQuestion alloc] init]; NSMutableArray *tabViewControllers = [[NSMutableArray alloc] init]; [tabViewControllers addObject:view1]; [自我 setViewControllers:tabViewControllers]; view1.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"view1" image:[UIImage imageNamed:@"view1"] tag:1]; [self setViewControllers:tabViewControllers] 中的此错误; 'UserInfoViewController' 没有可见的@interface 声明选择器'setViewControllers:'

以上是关于如何在 uitabbarcontroller 中的 uibutton 单击事件上推送其他视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章

如何呈现嵌入在 UITabBarController 和 UINavigationBarController 中的 ViewController

如何以编程方式切换到 UITabBarController 中的另一个选项卡?

UITabBarController 问题中的 UINavigationController

如何更新 UITabbarController 中的默认徽章 UI 外观?

如何在 UITabBarController 中获取特定 UIViewController 的索引

如何识别从UITabBarController中的更多选项卡或单独选项卡单击视图控制器?