UIApplication启动手机应用程序并将用户返回到错误的屏幕

时间:2009-02-14 07:51:50

标签: cocoa-touch

我的iPhone应用程序通过以下方式拨打电话:

NSURL *phoneURL = [NSURL URLWithString:[NSString stringWithFormat:@"tel://%@", @"11111111"]];
[[UIApplication sharedApplication] openURL:phoneURL];

这来自UIView内的UINavigationController。然而,它不是根UIView

当手机应用程序完成通话并将控制权返回给我的应用程序时,用户返回的屏幕不是用户离开的屏幕。它是UINavigationController

的根屏幕

如何让[UIApplication sharedApplication]在用户离开的屏幕上返回控件?

1 个答案:

答案 0 :(得分:2)

你没有。

如果您插入适当的调试代码,我认为您会发现您的应用在拨打电话时实际关闭,并在通话结束时重新打开。这是设计的;资源在通话中受限,Apple不想在放弃通话和查杀应用之间做出决定。所以你需要做的是在退出之前保存应用程序的状态(无论是你去的还是在applicationWillTerminate :),然后在applicationDidFinishLaunching中恢复它:幸运的是,无论如何你都需要这样做 - 当你重新启动它们时,iPhone应用总是恢复到之前的状态 - 所以这不是真正的额外工作。