如何更改app delegate中指定的类

时间:2014-09-10 13:13:02

标签: ios uitableview

我正在使用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;

1 个答案:

答案 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];