警报视图没有显示?

时间:2013-04-22 10:36:24

标签: ios objective-c uialertview nsnotifications

iam检查互联网是否可用是我试图显示一个警报,当我点击这个“确定”按钮我想退出app.But现在这个警报没有显示,它也没有调用代表。 / p>

在我的连接功能

  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 个答案:

答案 0 :(得分:1)

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

click this "Ok" button i want to exit app

无法将此作为Human Interface Guidelines。 “不要以编程方式退出”。 切勿以编程方式退出iOS应用程序 因为人们倾向于将此解释为崩溃。

如果有某些特定原因,您需要告诉用户有关情况并解释他们可以采取的措施。

答案 1 :(得分: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];

答案 2 :(得分:1)

您的代码应该有效。我会尝试在IF语句中设置一个断点

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

查看代码是否被调用。

也可能有所帮助
<UIAlertViewDelegate> in the .h. 

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

答案 3 :(得分:-2)

确保您正在显示主线程的警报视图,即:

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

希望它有所帮助, 甲