-1

我的问题是,我实现了一个警报,允许在打开应用程序时告诉用户没有互联网连接,并显示一个带有警报的白色视图。我的代码是:

Reachability * reach = [Reachability reachabilityWithHostname:@"www.google.com"];

if([reach isReachable])
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:[NSBundle mainBundle]];
MFSideMenuContainerViewController *container = (MFSideMenuContainerViewController *)self.window.rootViewController;
UINavigationController *navigationController = [storyboard instantiateViewControllerWithIdentifier:@"navigationController"];

UIViewController *rightSideMenuViewController = [storyboard instantiateViewControllerWithIdentifier:@"rightSideMenuViewController"];

[container setRightMenuViewController:rightSideMenuViewController];
[container setCenterViewController:navigationController];
}
else
{
    connection = @"Please connect to Internet";
    [self showAlarm:connection];
    [reach startNotifier];
}

    - (void)showAlarm:(NSString *)text
{
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Connection"
        message:text delegate:self
        cancelButtonTitle:@"الغاء"
        otherButtonTitles:nil];
    [alertView show];

}

上面的方法允许在没有连接时提醒用户,如下面的截图: 在此处输入图像描述

现在,如果我有互联网连接,并尝试打开应用程序(单击应用程序图标),将显示白页(仍在后台),

在此处输入图像描述

因为上次打开应用程序没有连接,所以显示白页,所以当我再次打开应用程序时(现在我有互联网),应用程序的主页面必须启动,但因为它保存了最后一次打开视图,所以再次显示白页,如果我双击 iphone 的主按钮并关闭应用程序,然后再次运行它,它工作正常,希望你现在得到我。如果我将(应用程序不在后台运行)设置为“是”,这是真的吗?或者您建议的另一种解决方案,如果是,请告诉我这个选项(应用程序不在后台运行)有什么作用?如果它有不便之处,使用它是否安全?谢谢

4

1 回答 1

0

每当你再来的时候,在你的课堂上试试这个。

- (void)viewWillAppear:(BOOL)animated
{
    [[NSNotificationCenter defaultCenter] addObserver: self  selector: @selector(handleEnterForeground:) name: @"UIApplicationDidBecomeActiveNotification" object: nil];
}

- (void) handleEnterForeground: (NSNotification*) sender
{
    [self checkYourConnection_Method];
}

NSNotification告诉应用程序它是否会从后台进入前台。
然后再次调用检查“Internet Connection”的方法。

希望这会对您有所帮助。

谢谢。

于 2013-07-29T08:59:40.127 回答