- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我一直在寻找解决我的问题的方法,但到目前为止还没有找到任何东西。
我有一个带有一堆 UIViewController 的 UINavigationController(如果相关的话,这都在 TabbarController 中)。在最后一个 ViewController 中,我想发送一封电子邮件:
MFMailComposeViewController *emailVC = [[MFMailComposeViewController alloc] init];
// fill out emailVC properties ...
[self presentModalViewController:emailVC animated:YES];
然后在发送电子邮件后的委托(delegate)中,我想关闭电子邮件 View Controller 并弹出 NavigationController 堆栈中的最后一个 View Controller :
-(void)mailComposeController:(MFMailComposeViewController *)controller
didFinishWithResult:(MFMailComposeResult)result
error:(NSError *)error
{
// save some variables here ...
[self dismissModalViewControllerAnimated:YES]; // This line works by itself
[self.navigationController popViewControllerAnimated:NO]; // this line causes EXC_BAD_ACCESS
但是,最后一行导致某处崩溃。我检查了之前和之后的 ViewController 堆栈。最后一个 viewController 正确地从列表中删除。
欢迎提出任何想法或建议。问题可能出在我的代码中的其他地方,我想确保这部分没问题。谢谢。
最佳答案
尝试延迟启动pop
iOS 3 及更高版本的解决方案
-(void)mailComposeController:(MFMailComposeViewController *)controller
didFinishWithResult:(MFMailComposeResult)result
error:(NSError *)error
{
[...]
[self dismissModalViewControllerAnimated:YES];
[self performSelector:@selector(doThePop) withObject:nil afterDelay:0.40];
[...]
}
- (void)doThePop
{
[self.navigationController popViewControllerAnimated:NO];
}
您可能想要微调延迟。
iOS 5 及更高版本的解决方案
-(void)mailComposeController:(MFMailComposeViewController *)controller
didFinishWithResult:(MFMailComposeResult)result
error:(NSError *)error
{
[...]
[self dismissViewControllerAnimated:YES completion:^
{
[self.navigationController popViewControllerAnimated:NO];
}];
[...]
}
尽管这看起来有点老套,但它应该可以工作。
关于iphone - dismissModalViewController 然后 popViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8901702/
是否有与 UINavigationController 的 popViewController 等效的 TTNavigator? (或者关闭我找不到的 View Controller 的替代方法?)
我遇到了一个奇怪的故障,当调用 popViewControllerAnimated: 时, View Controller 上的正常标题 View 突然向左对齐。有人似乎遇到过类似的问题吗? 最佳答案
我在 popViewController 方面遇到问题。 我使用pushViewController转到OrdersFormViewController OrdersFormViewControlle
导航 Controller 中的 Popviewcontroller 只弹出当前页面并将我们发送到上一页。有没有办法弹出两页并返回到上一页之前的页面(后两页),或者我必须将其推送到该页面。谢谢 最佳答
我有两个 UIViewController,“A”和“B”,其中“A”覆盖 shouldAutorotateToInterfaceOrientation 以针对 UIInterfaceOrientat
我想从 View 1 的类方法中返回我的 Root View 。在 View 1 的实例方法中,我只想说 [self.navigationController popViewControllerAni
我可以在不使用这样的代码的情况下从导航 Controller 堆栈中删除 View Controller 吗 [mynavigationController popViewControllerAnim
我正在制作一个应用程序,它从解析中检索图像并将其显示到 Collection View 中。当用户点击图像时,图像会详细显示。我有一个用户可以更改的文本字段。当用户更改某些内容时,他们会点击保存按钮并
我在我的应用程序中使用 UISegue 在我的应用程序中的 View Controller 之间自动转换。我称它们为 A 和 B。 它按预期工作,但是当我想从 B 返回 A 时,我尝试调用[self.
我正在使用 ARC。我有 UINavigationController 来推送和弹出。碰巧其中一个 ViewController 是一个巨大的 ScrollView ,可容纳 100MB。在 popV
由于我试图拒绝但没有成功的奇怪请求,我不得不覆盖导航栏的后退按钮。 我制作了一个自定义的 UINavigationController 子类并破解了- (BOOL)navigationBar:(UIN
我有两个 View Controller 。第一个 View Controller 没有状态栏。 class ViewController: UIViewController { overri
我一直在努力使用 UINavigationalController 在 View 之间切换。我已经多次使用这个系统没有问题,但在我的新应用程序中它不能正常工作。 这是问题: 当我推送一个新的 View
因此,当发生错误时,我尝试将 View Controller 从堆栈中弹出,但似乎一次性弹出太多内容。顶部的导航栏失去了标题和按钮,但旧的 TableView 数据仍然可见。我不知道发生了什么....
我完全被难住了,情况是这样的: 我的应用程序使用核心位置框架来获取用户的当前位置,然后 ping 我的服务器 TrailBehind附近有趣的地方并将它们显示为列表。没问题。 为了节省电池,我在从服务
当我推送或弹出 UIViewController 时,动画需要多长时间才能完成幻灯片动画。我在主窗口上有一个 View ,当推送或弹出 ViewController 时,我需要同步滑动该 View 。
我有一个 UINavigationController ,上面有一系列 UIViewControllers 。在某些情况下,我想正好弹回两个级别。我以为我可以通过连续两次调用 popViewContr
我创建了一个 UINavigationController (作为初始屏幕)并将它们与我的 UITableViewController 连接起来(作为根)。 接下来,我创建另一个 UINavigati
我在 ARC 下的内存管理有一些问题。当我在我的应用程序中弹出 View Controller 时,它们都不会释放内存,有时不会调用 View Controller 的 dealloc。即使调用了 d
当使用 UINavigationController 创建的后退按钮弹出 viewController 时,我需要调用我已有的方法来保存数据。 有没有办法获得委托(delegate)回调或我在文档中没
我是一名优秀的程序员,十分优秀!