2016-01-23 87 views
0

我有我的iOS应用程序中有4个选项卡的TabViewController设置。一些选项卡转到静态ViewControllers,而一些转到导航控制器,然后用户可以深入了解。以编程方式导航标签视图控制器与嵌套导航控制器

我的问题是这样的,在应用程序的委托,我实现了“didReceiveRemoteNotification”的方法,当我收到远程通知我显示一个下拉通知使用了一种类似于库这个https://github.com/terryworona/TWMessageBarManager

我想最简单的并最简单的方法来添加一个回调到这些下拉消息之一,以便单击时,我显示在标签视图中的一个特定的索引,无论我在应用程序中的位置。

我想过应用程序委托可能会广播一个当前显示的视图控制器也会侦听的通知,然后当前显示的视图控制器展开,如果它嵌套在导航控制器中的顶层,即关卡将显示TabViewController,然后更改选项卡视图控制器的索引。或者,如果TabViewController当前显示,它将捕获通知并简单地更改索引。但这似乎在概念上是侵入性的,因为现在我的ViewControllers本身必须知道它们在UI层次结构中的位置,并且所有ViewController(有很多)必须实现处理通知的功能,以便他们可以决定展开+设置选项卡索引或只需设置标签索引。

回答

1

我会继承TabBarController,并且可以添加一个像 - (void)receiveMessageBarNotification:(NSNotification *)通知的方法。 TabBarController已经引用了你的视图控制器,因此可以处理'导航控制器栈vs静态VC'的所有逻辑。然后它会在视图控制器上调用unwind segue(如有必要)并更改它自己的索引。

通知注册都可以由AppDelegate处理。

相关问题