如何解决DismissmodalViewController不会删除模式视图
| 从昨天开始,我一直在弄清楚这个问题,但是还没有得到正确的答案。 我已经在我的标签栏控制器之上为我的加载视图控制器添加了modalviewcontroller,它运行良好。 在应用程序委托中添加了代码: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions {
[navController.navigationBar setTintColor:[UIColor blackColor]];
[window addSubview:rootController.view];
[window makeKeyAndVisible];
LoadingViewController *lvc = [[LoadingViewController alloc] initWithNibName:@\"LoadingView\" bundle:nil];
// Delegate added here
lvc.loadingDelegate = self;
[rootController presentModalViewController:lvc animated:YES];
[self URL];
[lvc release];
return TRUE;
}
现在,我进行解析,解析完成后,在解析结束的其他视图名称XMLParsingView.m中调用以下代码。
- (void)handleLoadedApps
{
LoadingViewController *loading = [[[LoadingViewController alloc] init] autorelease];
//delegating to let the load view controller kNow to dimiss itself by defining disappear method in protocol
[loading.loadingDelegate disappear];
}
在加载视图控制器时,我有调用dismissModalViewControlAnimated的方法:
-(void)disappear{
[activity stopAnimating];
[activity removeFromSuperview];
[self removeFromSuperview];
[self dismissModalViewControllerAnimated:YES];
}
但是由于某种原因,它将永远不会删除视图并且不会将其加载回我的标签栏控制器。
如果有人遇到此类问题,确实需要这里的帮助。
西米子
解决方法
在您的代码中,您似乎没有尖锐地创建了一个新的LoadingViewController,然后立即将其关闭。在您的应用程序委托中,您用笔尖创建第一个loadingViewController,将其模态显示在rootController上,然后释放它。由于您想在应用程序委托之外将其关闭,因此
3种选择(最难,最快,最理智)
a)从LoadingViewController对XMLParsingView的属性进行键值观察,以在任务完成时将其自身删除。
b)在任务完成时使用委托来通知LoadingViewController自行关闭。
c)从[[UIApplication sharedApplication]委托]中获取rootController,这意味着您必须将rootController作为属性或方法公开,并使rootController消除模态。
,您需要在
rootViewController
上调用dismissModalViewControllerAnimated
,而不是加载视图控制器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。