ios sdk只有一个视图一次改变bug

时间:2011-06-03 20:04:46

标签: objective-c ios ios4

我正在推动一些观点:

  • 最上面一个是UITabBarController
  • 第二个是具有推送视图的UINavigationController
  • 第三个是模态框。

按下模态框中的关闭按钮后,我试图将所有内容恢复为默认状态并更改tabbar索引。

[self dismissModalViewControllerAnimated:YES];
[self.navigationController popViewControllerAnimated:NO];     
[self.tabBarController setSelectedIndex:3];

这解除了模态视图,但没有做任何其他事情。什么想法可能是错的?我读了一些关于可能的ios bug但我不知道如何解决它。

2 个答案:

答案 0 :(得分:1)

UITabBarControllerUINavigationController都不是视图。两者都是UIViewController的子类,并且具有属性NSArray *viewControllers

如果actualView控制的ActualViewControllerrootView控制,而RootViewControllerrootViewController控制,navigationControllermodalView ModalViewController,您还有一个由[self dismissModalViewControllerAnimated:YES]; 控制的ModalViewController.m,然后放

[self.navigationController popViewControllerAnimated:NO];
ActualViewController.m

,然后输入

modalView
[self.tabBarController setSelectedIndex:3]; 中的

(推测RootViewController.m推文),推出

actualView
modalViewController中的

(推测navigationController推文),推测可能是。

如果navigationController从未添加到actualViewController,则它不知道tabBarController存在。

如果tabBarController从未添加到{{1}},则它不知道{{1}}存在。

答案 1 :(得分:0)

简单(又脏)的方式: 在模态视图中关闭模态视图。使导航视图控制器成为模态视图的委托。使tabbar控制器成为导航控制器的委托。按下按钮时,调用导航控制器中弹出视图的方法,并调用tabbar控制器的方法来更改选定的选项卡。