-1

我正在尝试在我的 iOS 应用程序中创建一个对话框(应用程序是 PhoneGap 应用程序)。

我正在使用这篇文章中的代码:如何在 iOS 中实现弹出对话框

以下是链接中的代码

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No network connection" 
                                                message:@"You must be connected to the internet to use this app."
                                               delegate:nil 
                                      cancelButtonTitle:@"OK"
                                      otherButtonTitles:nil];
[alert show];

我已将此代码放入AppDelegate.m方法中

- (BOOL)application:(UIApplication)...

应用程序运行但对话框不显示。

问题是什么?


我已经更新了代码如下

下面的代码在我的 appdelegate.m 中

//reachability code

if (networkStatus == ReachableViaWifi)
{
    while (true)
        //show progress bar
}
else
{
    UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"title" message:@"message" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:@"cancel", nil];
    [alert show];
}

警告框未显示。我究竟做错了什么?

4

4 回答 4

1

如果你一切都做对了,你可以在 AppDelegate 中显示 UIAlertView,但是你不能使用exit()方法退出应用程序,在 iOS 中自己退出应用程序是不正确的做法。基本上你的 AppDelegate 正在实现UIApplicationDelegate协议,这个协议有很多方法。

尝试在 AppDelegate 中以不同的方法显示您的 AlertView。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"title" message:@"message" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:@"cancel", nil];
    [alert show];

    // other code... 
}

或在

- (void)applicationDidBecomeActive:(UIApplication *)application {

   UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"title" message:@"message" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:@"cancel", nil];
    [alert show];
}

同样,您可以根据问题中提到的可达性的状态更改相应地显示警报视图。

于 2013-04-24T22:21:32.123 回答
0

我想那是因为你的代码在 line 之上[self.window makeKeyAndVisible];

尝试在该行之后移动您的代码以获取警报。

于 2013-04-24T21:49:09.497 回答
0

您应该将代码添加到 MainViewController.m(或其他 UIViewController .m 文件)中,并根据您希望将代码添加到的行为-(void)viewDidLoad-(void)viewDidAppear方法。

于 2013-04-24T21:51:23.887 回答
0

对于 iOS 警报对话框,在您的 AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No network connection" 
                                          message:@"You must be connected to the internet to use this app."
                                          delegate:nil 
                                          cancelButtonTitle:@"OK"
                                          otherButtonTitles:nil];
[alert show];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = [[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil];
[self.window makeKeyAndVisible];
return YES;
}

既然您提到您正在使用 phonegap,他们将在不同平台上为您处理警报框。您将在您的页面 html 中使用以下代码

function showAlert() {
    navigator.notification.alert(
        'You must be connected to the internet to use this app.',
        null,       
        'No network connection',            
        'OK'                  
    );
}
于 2013-04-24T22:00:37.727 回答