2

我有 1 个包含 UITabBarController 的主 UIViewController。标签栏控制器有 4 个 UIViewControllers(每个都由 UINavigationControllers 管理)。简而言之,它看起来像这样:

主视图控制器
   |
   |--- FirstUIViewController
   |
   |--- 第二个UIViewController
   |
   |--- 第三个UIViewController
   |
   |--- 第四UIViewController

FirstUIViewController 默认加载。

在 SecondUIViewController 中,有一个可以发生的事件。此事件具有与其一起传递的特定数据。当此事件发生时,我希望发生两件事:

1)FourthUIViewController 在标签栏控制器中被选中,以直观地显示已输入的不同标签。

2) FourthUIViewController 中的后续操作,其中选择了特定的 UITableViewCell。选定的单元格由事件中传递的数据确定。

为了做到这一点,我在 MainViewController 中创建了一个 NSNotification 观察者。它监听来自 SecondUIViewController 的事件并通过 userInfo 从中获取数据。

我也知道从 MainViewController 我可以轻松地在 UITabBarController 上设置 selectedIndex 以便显示正确的选项卡。(#1完成)。

然而,完成#2让我感到困惑。我不知道如何(正确地)设置标签栏的 selectedIndex,然后让 FourthUiViewController 作用于选定的单元格。我的假设是在此事件发生之前可能尚未加载 FourthUIViewController,因此我无法设置任何参数或调用任何观察者。

也许更广泛的问题是通过选项卡选择加载 UIViewController 时如何传递数据(与推送非常简单的新 UIViewController 相比)。

TIA。

4

2 回答 2

1

视图控制器将始终在启动时加载,除非您对您的 NIB 文件做了一些非常奇怪的事情。

控制器的视图可能尚未加载,但您可以在操作该视图的表之前通过调用[fourthController view](或,如果合适的话,调用)来强制发生这种情况。[self view]

于 2010-12-30T22:13:18.147 回答
0

如果需要,通知可以有多个收件人。为什么不让您的其他视图简单地收听相同的通知并根据 UserInfo 选择所需的表。

我理解对了吗?

于 2010-08-23T18:25:28.660 回答