gpt4 book ai didi

objective-c - 如何从另一个 View Controller 访问选项卡 View Controller

转载 作者:搜寻专家 更新时间:2023-10-30 20:05:44 27 4
gpt4 key购买 nike

my storyboard我在访问选项卡栏 Controller 下的 View Controller 时遇到问题。这是我的 Storyboard的样子:

  1. View Controller A(-> 页面 View Controller -> View Controller C
  2. View Controller A -> 标签栏 Controller (MyTabBarController.h/.m) -> 导航 Controller (MyNavigationController.h/.m) -> View Controller B (TabViewController.h/.m)
  3. 标签栏 Controller (MyTabBarController.h/.m) -> View Controller D
  4. 标签栏 Controller (MyTabBarController.h/.m) -> View Controller E

在 View Controller A 中,我有一个名为 loginButton 的 IBAction,它连接到 Tab Bar Controller,目前它看起来像这样:

- (IBAction)loginButton:(id)sender {

MyNavigationController *localNavigationController;

UIStoryboard * storyboard = self.storyboard;

MyTabBarController *tbc = [[MyTabBarController alloc] init];

NSMutableArray *localControllersArray = [[NSMutableArray alloc] initWithCapacity:1];

TabViewController *login = [storyboard instantiateViewControllerWithIdentifier: @ "TabViewController"];

localNavigationController = [[UINavigationController alloc] initWithRootViewController:login];

localNavigationController.delegate = self;

[localControllersArray addObject:localNavigationController];


tbc.viewControllers = localControllersArray;


tbc.delegate = self;
tbc.moreNavigationController.delegate = self;


tbc.selectedIndex = 0;

[self presentViewController:tbc animated:YES completion:^{

}];

}

我无法正确显示它。我在这段代码中收到了一堆警告。并且它也没有在标签栏的底部显示不同的标签项,即使我已经在每个标签上放置了图像/文本。

那么如何正确显示/访问 Tab Bar Controller 中的 View Controller 呢? (即 View Controller C/D/E)?

最佳答案

您在问题中显示的 Storyboard已经包含相互正确连接的选项卡栏 Controller 、导航 Controller 和登录 Controller 。因此,您不应在代码中实例化新的标签栏 Controller 或导航 Controller ——它们将在您实例化标签栏 Controller 时由 Storyboard实例化。因此,您唯一需要做的就是为 Storyboard中的选项卡栏 Controller 提供一个标识符,然后执行此操作(假设该标识符称为 MyTabBarController):

- (IBAction)loginButton:(id)sender {
UITabBarController *tbc = [self.storyboard instantiateViewControllerWithIdentifier:@"MyTabBarController"];
[self presentViewController:tbc animated:YES completion:nil];
}

如果您控制从“登录”按钮拖动到选项卡栏 Controller ,并选择“模态”,您甚至不需要此代码。这将创建一个模态转场,该转场将在没有任何代码的情况下呈现标签栏 Controller 。

关于objective-c - 如何从另一个 View Controller 访问选项卡 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20694617/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com