【问题标题】:Dismissing an Alert View in different method than what it is in以不同的方法关闭警报视图
【发布时间】:2011-10-02 09:30:18
【问题描述】:

我的应用中有一个应用内购买,当购买是“购买”或正在进行时,我会出现一个警告视图,上面写着“正在加载...”。当购买成功、恢复或失败时,我想调用一个释放警报视图的方法。唯一的问题是,我不能尝试以另一种方法释放警报视图,因为它不知道我在说什么警报视图并且会产生错误。现在我不知道这是否是实现这一目标的最佳方式,所以所有想法都值得赞赏。谢谢!

case stateIsPurchasing { //or whatever it's called

    UIAlertView *alert = [[UIAlertView alloc] message and delegate and button stuff here];

    [alert show];
    [alert release];
}

【问题讨论】:

    标签: iphone ios release uialertview dismiss


    【解决方案1】:

    UIAlertView 绝对不是执行此操作的正确控件。

    如果您能够显示有限进度,则应使用 UIProgressView 或使用 UIActivityIndi​​catorView 显示“微调器”。

    【讨论】:

    • 嗨,卡尔。首先,我想尝试使用警报视图来执行此操作,以了解其工作原理,但最终我将在实际发布应用程序时将微调器添加到警报视图中。
    • 如果您确实想将 UIAlertView 仅用于测试,您可以在 .h 文件中声明它,在 viewcontroller 的 init 方法中分配它,然后在 dealloc 方法中释放它。如果您@synthesize 它,您将可以在其他方法中访问该变量。
    【解决方案2】:

    我不会为此使用警报视图。找一个进度HUD,比如SVProgressHUD,一个优秀漂亮的加载视图。

    http://cocoacontrols.com/platforms/ios/controls/svprogresshud

    SVProgressHUD 用作单例,因此您可以从 any 类中显示/停止它。

    【讨论】:

      【解决方案3】:

      在您的标头中声明一个UIAlertView 作为保留属性,合成并在dealloc 中发布。使用此指针存储您在该代码 sn-p 中创建的警报视图,并在您的其他方法中使用声明的指针。但是不要在创建警报视图时调用[alert release];(除非您喜欢 EXC_BAD_ACCESS 错误!)。哦,如果您要添加应用内购买,请注意 Lodsys...

      【讨论】:

      • 感谢您的帮助!哈哈,我希望 Lodsys 被摧毁 :)
      • 是的。苹果需要攻击他们(尽管它有可能违反他们的合同)。很高兴我能帮忙:)
      • 还有一个问题。我已经完成了你说的所有事情(@property (nonatomic, retain) UIAlertView *alertViewLoading; in .h file, @synthesize alertViewLoading; in .m file and [alertViewLoading release]; in dealloc,因为新的视图控制器来了购买成功后,当新视图出现时,加载警报视图应该被关闭。现在,我的最后一个问题是,你如何说即将出现的警报视图是alertViewLoading?我试过UIAlertView *alertViewLoading = [[UIAlertView alloc...,但这不起作用。我该怎么办?感谢您的帮助!
      • 既然你已经定义了alertViewLoading,那么就做alertViewLoading = [[UIAlertView alloc...
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-05
      • 2011-07-24
      • 2011-07-27
      相关资源
      最近更新 更多