【问题标题】:ios changing class of view controllerios更改视图控制器的类
【发布时间】:2013-09-06 19:30:12
【问题描述】:

我在主视图控制器中有几个按钮。使用情节提要,我希望将其中两个按钮切换到同一个标签栏控制器,并根据按下哪个按钮来更改给定标签栏控制器的视图控制器之一的类。

有可能吗?感谢任何建议。

【问题讨论】:

  • 你的意思是说你想从 ViewController 调用一个有两个标签的标签栏控制器。点击视图控制器中的按钮 1 它将调用标签栏中的 Tab1 并点击视图控制器中的按钮 2 它将调用标签栏中的 Tab2。我说的对吗?
  • 不,在单击 button1 和 button2 时,它应该调用相同的 Tab1 ,但取决于按钮来更改 Tab1 的类。
  • 好的,基本上 Tab1 有 2 个不同的视图,它们会根据点击的按钮加载。

标签: ios


【解决方案1】:

您可以在定义了按钮的控制器中使用 prepareForSegue:(UIStoryboardPopoverSegue *)segue sender:(id)sender,以便将信息发送到目标控制器。

详情见:https://stackoverflow.com/a/11464268/1749367

【讨论】:

    【解决方案2】:

    在 Storyboard 中,将您的 ViewControllerTabBarController 连接,将您各自的标签添加到 TabBarController

    在 Storyboard 的 viewController 中添加两个按钮,分别为它们添加分配标签 1 和 2。

    在 viewController.m 中

    -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {
     UIButton *mybutton = (UIButton *)sender;
     if ([segue.identifier isEqualToString:@"tabbar"]) 
        {
          UITabBarController *tabbar = segue.destinationViewController;
    
          UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    
          if(myButton.tag == 0)
          {
          UIViewController  *tab1 = [storyboard instantiateViewControllerWithIdentifier:@"tab1"];
          }
          else
          {
          UIViewController  *tab1 = [storyboard instantiateViewControllerWithIdentifier:@"tab2"];
          }
    
    
          UIViewController  *otherTab= [storyboard instantiateViewControllerWithIdentifier:@"Othertab"];
    
    
        tabbar.viewControllers = [NSArray arrayWithObjects:tab1,othertab, nil];
    }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多