我目前使用的是ViewDeck和故事板,在application didFinishLaunchingWithOptions中有以下设置
//View Deck Setup
UIStoryboard* mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: nil];
UIViewController* menuController = [mainStoryboard instantiateViewControllerWithIdentifier:@"LeftSideMenu"];
UINavigationController* navigationController = (UINavigationController *) self.window.rootViewController;
self.viewDeckController = [[IIViewDeckController alloc] initWithCenterViewController:navigationController leftViewController:menuController rightViewController:nil];
self.window.rootViewController = self.viewDeckController;但是,当我从我的CenterController中设置一个新的MenuViewController时,导航栏就会被删除,即使加载与我之前看到的相同的中心视图控制器。
- (IBAction)viewUsers:(UIButton *)sender
{
UIStoryboard* mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: nil];
UIViewController* viewController = [mainStoryboard instantiateViewControllerWithIdentifier:@"middleViewController"];
[self.viewDeckController setCenterController:viewController];
[self.viewDeckController closeLeftView];
}我做错什么了?
发布于 2013-12-16 18:04:37
解决方案是删除AppDelegate和您的TabBar之间的任何“甲板构造器”类。当您需要设置或更改Deck结构时,我为每个结构创建几个方法。例如,如果您希望Deck在左侧有"leftView“视图控制器,在右边有"rightView”,在中间有"tabBarHome“,那么在App中创建这样的方法:
-(void) lanzarHome{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
IIViewDeckController* deckController =[[IIViewDeckController alloc] initWithCenterViewController:[storyboard instantiateViewControllerWithIdentifier:@"tabBarHome"]
leftViewController:[storyboard instantiateViewControllerWithIdentifier:@"leftView"]
rightViewController:[storyboard instantiateViewControllerWithIdentifier:@"rightView"]];
deckController.leftSize = 100;
self.window.rootViewController = deckController;
[self.window makeKeyAndVisible];}
现在,您必须使用如下语句从您的viewController中调用此方法:
[((VKAppDelegate*) [[UIApplication sharedApplication] delegate]) lanzarHome];
最重要的想法是从AppDelegate创建更改或修改Deck结构的方法,并且在委托和中心TabBar之间永远不会有另一个类或viewController。
我希望这个答案能解决你的问题。对我来说,要找出这个问题是一项非常艰苦的工作。
https://stackoverflow.com/questions/18681015
复制相似问题