use*_*342 7 iphone image uinavigationcontroller uitabbar ios
我正在尝试在UITabBar.viewControllers数组中选择一个UINavigationControllers.
我之前尝试过设置UITabbarController.selectedIndex,但Apple文档说: "要选择更多导航控制器本身,您必须改为改变selectedViewController属性的值."
AppDelegate *appDelegate = (AppDelegate*)[UIApplication sharedApplication].delegate;
UINavigationController *navController = [appDelegate.objTabBarController.viewControllers objectAtIndex:5];
[appDelegate.objTabBarController setSelectedViewController:navController];
Run Code Online (Sandbox Code Playgroud)
这样做很好但是当我改回到MoreViewController的列表视图时,左侧的图标消失了,不会再回来.
一切都好,用手指选择它.

以编程方式选择时出现错误 - >图像消失了

我有什么错误吗?
最好的问候,史蒂夫
我遇到了同样的问题。导航控制器似乎以某种方式失去了对视图控制器的跟踪。就我而言,图像消失的导航控制器位于 tabBarController 中的索引 7 处。导航控制器应该包含一个 SettingsViewController 类的 viewController。但有时它会失去它。
为了解决这个问题,我必须向两个类添加代码——应用程序委托和 SettingsViewController。在应用程序委托中:
-(void) fixSettingsNavigationController {
UITabBarController* tab = self.tabBarController;
NSArray* vcs = tab.viewControllers;
NSInteger nVCs = vcs.count;
if (nVCs > 7) {
UIViewController* settingsContainer = vcs[7];
UINavigationController* settingsContainerNav = (UINavigationController*)settingsContainer;
if ([settingsContainerNav isKindOfClass: [UINavigationController class]]) {
NSArray* settingsNavVCs = settingsContainerNav.viewControllers;
NSInteger count = settingsNavVCs.count;
SettingsViewController* svc = self.settingsViewController;
if (!count) {
// The container navigation controller has lost track of the settings view controller.
settingsContainerNav.viewControllers = [NSArray arrayWithObject:svc];
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在 SettingsViewController 中:
-(void) viewWillDisappear:(BOOL)animated {
MyAppDelegate* appDel = [[UIApplication sharedApplication] delegate];
[appDel fixSettingsNavigationController];
[super viewWillDisappear: animated];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
846 次 |
| 最近记录: |