【发布时间】:2014-02-27 15:35:45
【问题描述】:
我有一个带有 (~45) 个 uiviewControllers 负载的故事板应用程序。无论是在后台还是前台,当信标触发 uilocalnotification 并且用户接受它时,我想“推送/继续”到与该信标触发器关联的 UIViewController。很简单。根据信标的不同,我有大约 10 个不同的 VC 可供选择。
我的问题是这样的。当信标触发通知时,用户实际上可能坐在我的 45 个 UIViewCtrlers 中的任何一个,因此我的每个 UIViewControllers 都必须具有类似于下面的内容(以及选择器的代码块),以便采取行动通知并推送/继续到另一个视图控制器。
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(showFoodMenuViewNow)
name:@"showfoodmenu" object:nil];
这将使我的故事板充满更多的跨 VC 推送/segue 连接,而你无法动摇。很乱。有没有办法消除所有的视觉故事板转场,或者以某种方式引入一个所有视图转场的单一“矢量视图控制器”。然后,该 VC 将评估 localnotification 并推送到关联的 VC。
管理此问题的推荐最佳做法是什么?
希望我说得通。
更新:
我现在切换了路径,尝试直接从我的 appDelegate 访问 UINavigationController。我正在使用以下代码来执行此操作,虽然我的 nc 不是 nil,但没有推送任何视图...
为什么这段代码不会推送所需的视图控制器?
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
nm_vcFoodMenu *fm = [sb instantiateViewControllerWithIdentifier:@"foodmenu"];
UINavigationController *nc = [sb instantiateViewControllerWithIdentifier:@"myNavController"];
if (nc == nil){
NSLog(@"nc is nil");
} else {
NSLog(@"nc is not nil so trying to push to foodmenu");
[nc pushViewController:(nm_vcFoodMenu *)fm animated:YES];
}
这是我的故事板和各种活动部件的描述。希望这能帮助你帮助我!
谢谢。
【问题讨论】:
标签: ios7 uilocalnotification uistoryboardsegue ibeacon