xcode – 我想从视图控制器转到UITabBarController中的特定选项卡

前端之家收集整理的这篇文章主要介绍了xcode – 我想从视图控制器转到UITabBarController中的特定选项卡前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
首先,让我说我是一个绝对的初学者,所以请原谅我,如果这是一个愚蠢的问题要问.我只想补充一点,我花了几个小时/天试图弄清楚如何解决这个问题 – 包括对stackoverflow的广泛搜索(也许答案在某处,我现在不知道究竟要搜索什么:) .

但是,让我们继续:我对Xcode故事板项目有一个小问题.基本上我的项目看起来像这样:

导航控制器 – >视图控制器0 – >标签栏控制器 – <查看控制器1,查看控制器2,查看控制器3. 当用户在视图控制器0中按下“按钮#2”时,我希望他/她直接跳到“查看控制器2”. 这有可能吗,如果是的话,应该使用什么代码,并且我应该把它放在哪里. 希望有人在那里帮助新手:) 问候,
Ulrik合作

解决方法

对的,这是可能的.您可以显示任何其他视图控制器.
您只需在按钮#2中添加一个segue到View Controller 2.(我假设您在单个故事板中拥有所有控制器)

更新:上面的解决方案将显示View Controller 2本身没有标签栏控制器.

没有看到实际的代码很难详细说明.有关详细信息,请参阅以下文档:

> View Controller Basics(特别是“故事板帮助您设计用户界面”部分)
> Presenting View Controllers from Other View Controllers
> Using View Controllers in Your App

也许你会提出更具体的问题.

更新
如果要在tabbar控制器中预先选择所需的视图控制器,可以使用以下代码草图.在这里,您可以以编程方式启动segue并在prepareForSegue:sender:方法中执行所需的预初始化.

static NSString * const kShowTabSegueID = @"ShowTab";

@interface ViewController ()

- (IBAction)buttonOnePressed;
- (IBAction)buttonTwoPressed;
- (IBAction)buttonThreePressed;

@end

@implementation ViewController

- (IBAction)buttonOnePressed
{
    [self performSegueWithIdentifier:kShowTabSegueID
                              sender:@0];
}

- (IBAction)buttonTwoPressed
{
    [self performSegueWithIdentifier:kShowTabSegueID
                              sender:@1];
}

- (IBAction)buttonThreePressed
{
    [self performSegueWithIdentifier:kShowTabSegueID
                              sender:@2];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue
                 sender:(id)sender
{
    if ([segue.identifier isEqual:kShowTabSegueID]) {
        NSNumber *indexToShow = sender;
        UITabBarController *tabBar = segue.destinationViewController;
        [tabBar setSelectedIndex:indexToShow.unsignedIntegerValue];
    }
}

@end

猜你在找的Xcode相关文章