0
tabbarcontroller /导航层次结构中的我搜遍了无数的帖子在几天,从来没有发现任何一个完全正确的答案,我的看似简单的任务:显示的DetailView从远程通知
我的应用程序有一个主tabbarcontroller(TBC)第一个标签有一个简单的视图控制器,其余的则有一个导航控制器导向的层次结构。
该任务很简单:接受入站远程通知,并启动比第4个选项卡的导航控制器的根视图更深一级的详细表单(dv)(此处标记为id = 3)。
tbc是应用的rootviewVC。图案的工作正常。主题的分析都是有效的。无论我尝试了什么,看起来我只能得到主要的tbc来显示(到tab3)或dv显示正确的细节,但没有看到tbc。
我最终通过基本上手动重置tbc来实现按照下面所示的AAA行的方式工作,但对我来说,我不得不基本重新创建tbc中的所有选项卡以使其工作。答案可能很简单,如果你知道在哪里看:
SO ..问题:是否有更好的方法来启动一个面向导航的层次结构内的细节视图,该视图存在于tabbarcontroller中的一个标签中是一个应用程序的rootview?
工作的代码示例:
UIStoryboard *mainstoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UITabBarController *tbc = [mainstoryboard instantiateViewControllerWithIdentifier:@"AppTabBarController"];
//setup tabs
//TODO: we should not have to create these here as the storyboard already has them...
UINavigationController *mainViewController = [mainstoryboard instantiateViewControllerWithIdentifier:@"Tab0NavController"];
UINavigationController *Tab1NavController = [mainstoryboard instantiateViewControllerWithIdentifier:@"Tab1NavController"];
UINavigationController *Tab2NavController = [mainstoryboard instantiateViewControllerWithIdentifier:@"Tab2NavController"];
UINavigationController *Tab3NavController = [mainstoryboard instantiateViewControllerWithIdentifier:@"Tab3NavController"];
[self.window setRootViewController:tbc];
[self.window makeKeyAndVisible];
//setup the destination detail view to show & set its' property we must manage (temp only, real code uses payload
QTManageContactVC *vc3 = [Tab3NavController.storyboard instantiateViewControllerWithIdentifier:@“Tab3VC"];
PFObject *newWidget = [PFObject objectWithClassName:@“Widget"];
{set details code}
vc2.widget = newConnection;
//AAA
[tbc setViewControllers:@[mainViewController, Tab1NavController, Tab2NavController, Tab3NavController]];
[tbc setSelectedIndex:3];
[Tab3NavController pushViewController:vc3 animated:NO];
completionHandler(UIBackgroundFetchResultNoData);
return;
这也许是过于详细,或者不是孤立的回答了..我所知道的当标签显示视图都有不同的导航控制器时,我必须缺少一些基本的东西。我有一个奇怪的时间试图让简单的pushviewcontroller调用实际显示我想要的视图..上面的工作,但似乎太多了。 我的想法是简单地抓住我需要的标签的navcontroller,通过storyboard id,设置tabbarcontroller的navcontroller到那,然后将视图推到该navcontroller进入我需要的详细视图。 似乎很简单,但没有上述..不行。 – 2014-09-08 15:10:16