gpt4 book ai didi

iphone - UITabBars 无法识别导航栏和导航栏隐藏 TableView Controller

转载 作者:行者123 更新时间:2023-11-29 03:33:39 25 4
gpt4 key购买 nike

我在导航栏内有一个 View Controller ,它推送一个标签栏 View Controller ,它有 4 个选项卡和 View Controller 。当我在 TabBarViewController 的 viewDidLoad 中 NSLog(@"%@", self.navigationController) 时,它显示为(null)。甚至 NSLog(@"%@",self.tabBarController) 在 TabBarViewController 的 viewDidLoad 中也是 (null)。这很奇怪,因为我有一个选择器,用于后退按钮,称为 dismissTab 并且我弹出 View Controller 并且它可以工作。如果我在那里使用 NSLog,它不会显示为 (null),所以某处有问题。我有一种感觉,这就是我的每个选项卡的 ViewController 被 NavigationBar 和 TabBar 隐藏的原因。我已经阅读了有关 NavigationBar/TabBars 隐藏/覆盖 Controller 的一部分的帖子,但他们都只是找到了一个 hack 来调整 TableView 的大小或向下/向上移动更多对象。我想找到解决方案。

AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
UIStoryboard *iPhoneStoryBoard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil];
ViewController *mainViewController = (ViewController*)[iPhoneStoryBoard instantiateViewControllerWithIdentifier:@"HomePage"];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:mainViewController];

self.window.rootViewController = navigationController;
[self.window makeKeyAndVisible];
return YES;
}

ViewController.m 当我按下 tabBars 时

UIStoryboard *iPhoneStoryBoard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil];
GRxTabBarViewController *tabViewController = (GRxTabBarViewController*) [iPhoneStoryBoard instantiateViewControllerWithIdentifier:@"GRxTabBarViewController"];

PViewController *pController = [tabViewController.viewControllers objectAtIndex:0];
SViewController *sController = [tabViewController.viewControllers objectAtIndex:1];
IViewController *iController = [tabViewController.viewControllers objectAtIndex:2];
MViewController *mController = [tabViewController.viewControllers objectAtIndex:3];

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:iController];

[tabViewController setViewControllers:[NSArray arrayWithObjects:pController, sController, navController, mController, nil]];
[self.navigationController pushViewController:tabViewController animated:YES];

我不知道哪里出错了,因为在 GRxTabBarViewController 的 viewDidLoad 中,我为后退按钮和一个选择器设置了一个图像,它起作用了,因为图像已设置并且选择器弹出它离开了堆栈。我还可以在 pViewController、iViewController、sViewController 和 mViewController 中加载数据和执行操作。

有人遇到这个问题或知道他们可以指导/指导我的解决方案吗?任何事情都有助于诚实。提前致谢!

最佳答案

看起来您正在使用 Storyboard 在导航 Controller 中连接标签栏 Controller 。我认为 Storyboard 允许你这样做,但我不确定这是否是标准的做法——除非你有一个非常引人注目/不可能做的要求,否则你应该总是能够使用标签栏 Controller 作为切换 View 的控制 Controller ,然后将您的导航 Controller 作为 Root View Controller 放在任何选项卡栏 View 中。我建议您查看更改 Controller 层次结构实现的可能性。从您的代码来看,这似乎是可行的 - AppDelegate.m 和 ViewController.m 代码片段。

关于iphone - UITabBars 无法识别导航栏和导航栏隐藏 TableView Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19460786/

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