强制 App 导航到 App DidBecomeActive 中的特定视图
Posted
技术标签:
【中文标题】强制 App 导航到 App DidBecomeActive 中的特定视图【英文标题】:Forcing App to Navigate to a specific view within AppDidBecomeActive 【发布时间】:2012-02-02 13:12:31 【问题描述】:我想让用户能够在某些情况下导航到特定视图,当应用程序再次从后台运行时。
现在我正在使用这段代码来强制我的应用程序:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
- (void)applicationDidBecomeActive:(UIApplication *)application
if(this situation occurs)
NavigationViewController *vc = [[NavigationViewController alloc] init];
self.window.rootViewController = vc;
[vc release];
eles
Password *vc = [[Password alloc] init];
self.window.rootViewController = vc;
[vc release];
- (void)dealloc
//[password release];
[_window release];
[_viewController release];
[super dealloc];
@end
但是我认为我之前的视图仍在运行(计时器仍在运行)。我如何才能释放以前的视图并重新开始“清理”。
编辑:
解决方案是检查窗口是否有子视图。如果有,它将从超级视图中删除。之后创建新视图并将其作为子视图添加到视图中
for (UIView *subView in [self.window subviews])
[subView removeFromSuperview];
self.viewController = [[[MyNewNibFile alloc] initWithNibName:@"MyNewNibFile" bundle:nil] autorelease];
[self.window addSubview:self.viewController.view];
【问题讨论】:
【参考方案1】:创建 NavigationViewController 和密码的全局实例,即在 appdelegate.h 中声明它们 在创建导航控制器和密码的新实例之前,请务必检查它们是否已经创建。如果它们已经创建,则先释放它们,然后再创建一个新实例。
【讨论】:
你能在代码中用代码解释你的答案吗?将密码 en navigationViewcontroller 设置为属性是否足够好。 -> 合成 -> 使用 self.window.rootViewController = self.Password;并在 dealloc 中释放它们?以上是关于强制 App 导航到 App DidBecomeActive 中的特定视图的主要内容,如果未能解决你的问题,请参考以下文章