我正在使用REFrostedViewController来显示一个滑入式菜单。它在应用程序中工作正常。我遇到了一种情况,我必须修改UITableview数据源;就像必须在表中显示的NSARRAY中更改值我正在做得很好。但问题是在appdelegate中创建的REFrostedViewController实例以及在appdelgate中创建的DEMOMenuViewController实例也将在整个应用程序生命周期中使用,直到用户退出应用程序。
DEMONavigationController *navigationController = [[[DEMONavigationController alloc] initWithRootViewController:[[[SearchViewController alloc] init]autorelease]]autorelease];
DEMOMenuViewController *menuController = [[[DEMOMenuViewController alloc] initWithStyle:UITableViewStylePlain]autorelease];
// Create frosted view controller
REFrostedViewController *frostedViewController = [[[REFrostedViewController alloc] initWithContentViewController:navigationController menuViewController:menuController]autorelease];
我的问题是我想要更改DEMOMenuViewController,以便我可以在REFrostedViewController中使用修改后的/ chnaged实例。如果我重新启动应用程序,我会在应用程序中获得新值,因为我需要在重新启动应用程序时创建新实例。
修改
Stituation :应用程序启动,它有三个菜单项搜索,登录, aboutus < / strong>当用户登录时,我需要将菜单更改为新项目,例如12个新项目。为此我使用条件 USERIN 更改了数据,因为我得到了新的数组,但工作正常。但是永远不会再次调用DEMOMenuViewController。实例是在appdelegate中创建的。
当我登录应用程序时,我想为REFrostedViewController创建一个新的DEMOMenuViewController实例。
我努力实现以下目标:
_menuViewController=[[DEMOMenuViewController alloc]init];
REFrostedViewController *view=[AppDelegateInstance frostedViewController1];
UINavigationController *navigationController=[AppDelegateInstance navigationController];
view=[[REFrostedViewController alloc] initWithContentViewController:navigationController menuViewController:_menuViewController];
[AppDelegateInstance frostedViewController1]=view;
答案 0 :(得分:0)
我通过修改rootviewcontroller
解决了这个问题DEMONavigationController *navigationController = [[[DEMONavigationController alloc] initWithRootViewController:[[[SearchViewController alloc] init]autorelease]]autorelease];
DEMOMenuViewController *menuController = [[[DEMOMenuViewController alloc] initWithStyle:UITableViewStylePlain]autorelease];
// Create frosted view controller
//
REFrostedViewController *frostedViewController1 = [[[REFrostedViewController alloc] initWithContentViewController:navigationController menuViewController:menuController]autorelease];
frostedViewController1.direction = REFrostedViewControllerDirectionLeft;
frostedViewController1.liveBlurBackgroundStyle = REFrostedViewControllerLiveBackgroundStyleLight;
frostedViewController1.liveBlur = YES;
frostedViewController1.delegate = self;
[UIView transitionWithView:self.view
duration:0.5
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^{ [[AppDelegateInstance window] setRootViewController:frostedViewController1]; }
completion:nil];