-3

我正在检查互联网是否可用是机器人试图显示一个警报,当我单击此“确定”按钮时,我想退出应用程序。但现在此警报没有显示,也没有调用代理。

在我的连接功能中

  if([[notification object] isEqualToNumber:[NSNumber numberWithInt:0]])
    {
        checkNetwork=[[UIAlertView alloc]initWithTitle:@"AssamKart" message:@"Device is not Connected To internet ,Please try again later " delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];

        [checkNetwork show];

    }

在我的警报代表中

 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
    {

        if(alertView==checkNetwork)
        {

            if(buttonIndex==1)
            {

           //here i open some other viewcontroller
        }}


    }

请帮我...

4

4 回答 4

1

如果您显示所有问题都必须解决,那么您的代码肯定存在一些小问题,但主要问题是您所要求的

click this "Ok" button i want to exit app

没有办法将此作为人机界面指南。“不要以编程方式退出”。永远不要以编程方式退出 iOS 应用程序,因为人们倾向于将其解释为崩溃。

如果有一些特定的原因,您需要告诉您的用户有关情况并解释他们可以做些什么。

于 2013-04-22T10:41:55.633 回答
1

作为 Apple 的人机界面指南,您不能以编程方式退出应用程序。

可能您的情况可能无法实现。

  if([[notification object] isEqualToNumber:[NSNumber numberWithInt:0]])

您可以尝试调试您的代码并查看它。其次,如果它只是关于警报,那么只需尝试无条件显示警报并查看它是否显示。

还有你是怎么定义的checkNetwork?你应该确保它是retain或类型strong。如果您使用的是 iOS6,请使用 strong 并将其作为属性。

@property(strong,nonatomic)UIAlertView *checkNetwork;

最后在您的代码中,您可以使用self.前缀访问它。

 self.checkNetwork=[[UIAlertView alloc]initWithTitle:@"AssamKart" message:@"Device is not Connected To internet ,Please try again later " delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
于 2013-04-22T10:56:04.620 回答
1

您的代码应该可以工作。我会尝试在 IF 语句中放置一个断点

if([[notification object] isEqualToNumber:[NSNumber numberWithInt:0]])

看看代码是否被调用。它也可能有助于添加

<UIAlertViewDelegate> in the .h. 

再说一次,不要以编程方式退出!

于 2013-04-22T11:12:50.437 回答
-2

确保您从主线程显示警报视图,即:

[checkNetwork performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:NO];

希望有帮助,A.

于 2013-04-22T10:39:21.340 回答