从后台返回后转到 iphone 应用程序的主屏幕

Posted

技术标签:

【中文标题】从后台返回后转到 iphone 应用程序的主屏幕【英文标题】:go to home screen of the iphone app after coming from background 【发布时间】:2011-06-07 18:45:54 【问题描述】:

我试图找出在用户从后台返回后,我应该如何将用户带到我的应用程序的主屏幕。

我不想让用户从后台一直到主屏幕。

但只有当他在我的推送通知警报上单击“查看”并且当时应用程序处于后台时,我才想将他带到主屏幕。

但是,如果他通常从后台打开应用程序,他应该去上次点击主页按钮并进入后台时离开的地方

感谢任何帮助。

谢谢, 尤格什

【问题讨论】:

我没有使用过推送通知,但我可以告诉你,你的应用应该在点击主页按钮然后恢复后打开——这是 ios 4 多任务处理特性的一部分。至于在收到通知后在特定部分打开,请检查链接的线程并再搜索一下。 ***.com/questions/3968372/… 嗨,氪,是的,我知道我可以使用给定的选项卡,但我遇到的问题是,由于我的所有选项卡都是导航堆栈,这些选项卡都深埋在堆栈中,我需要携带它扎根,然后再次将其推入给定视图,这就是我发现的困难 【参考方案1】:

info.plist中有一个bool属性--应用程序不在后台运行

你应该根据你的要求改变它。

【讨论】:

iAmitWagh,有一个属性,但那是启用或禁用后台的东西,我想在后台运行我的应用程序,因为我在后台做一些事情【参考方案2】:

好的,我不确定这种做法是否正确,但这就是我所做的,因为我的应用程序有一个 tabbarcontroller 我做的第一件事是我实现了 tabbarcontroller“didSelectViewController”的委托方法

// 每次你选择一个选项卡时都会这样做,它会回到那个选项卡的rootViewController

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController

     if ([viewController isKindOfClass:[UINavigationController class]])
         [(UINavigationController *)viewController popToRootViewControllerAnimated:NO];
     


然后在 didReceiveRemoteNotification

if(tabBarController.selectedIndex == 1)
    UINavigationController *navigationController  = (UINavigationController*)tabBarController.selectedViewController;
    [navigationController popToRootViewControllerAnimated:NO];
    [[[navigationController viewControllers ] objectAtIndex:0]viewWillAppear:YES];
else
    self.tabBarController.selectedIndex = 1;

所以让我解释一下这是在做什么,它正在检查当前选项卡是否为 1,如果是,那么它将从导航堆栈中删除所有视图以将视图带到根视图,如果当前选项卡不是1 并达到 1。

【讨论】:

以上是关于从后台返回后转到 iphone 应用程序的主屏幕的主要内容,如果未能解决你的问题,请参考以下文章

Navbar li 调整大小后转到下一行

转到后台后恢复应用程序

iPhone iOS如何在应用程序从后台恢复时添加密码/密码锁定屏幕?

iOS - 来自后台时上一个屏幕闪烁

仅在 iPhone 后台工作的应用程序

iPhone 5 的主屏幕网页应用程序的适合高度