【问题标题】:Show an UIAlertController from a button on an UITableViewCell从 UITableViewCell 上的按钮显示 UIAlertController
【发布时间】:2015-09-19 17:36:15
【问题描述】:

这是我在 UITableViewCell 的按钮内编写的代码。

var shareAlert = UIAlertController(title: "Post Alert", 
    message: "Your Post has been Shared with your Friends", 
    preferredStyle: UIAlertControllerStyle.Alert)

var Ok = UIAlertAction(title: "Ok", 
    style: UIAlertActionStyle.Default, 
    handler: nil)

shareAlert.addAction(Ok)
shareAlert.presentViewController(shareAlert, animated: true, completion: nil)

当用户单击按钮时,我希望它显示此警报,但应用程序在我单击按钮后立即崩溃。我做错了吗?如何从UITableViewCell 中的按钮显示警报视图?

【问题讨论】:

  • 崩溃时会产生什么错误?
  • 首先,UIAlertController 只在 iOS 8+ 上可用,所以在 iOS 7 上运行时使用 UIAlertView。 第二:你能发布设置按钮的代码吗?还是您的代码 sn-p 是连接到按钮的 IBAction 的一部分?
  • 在单元格上使用委托。与其直接执行操作,不如让拥有表视图的控制器执行操作。
  • @oliver 是的,我的代码 sn-p 是连接到按钮的 IBAction 的一部分。我正在使用 IOS8
  • 如何使用委托? @Sulthan 帮我写一些代码..

标签: ios swift uitableview uialertcontroller


【解决方案1】:

因为这条线而崩溃

shareAlert.presentViewController(shareAlert, animated: true, completion: nil)

控制器不能展示自己,所以

替换

shareAlert.presentViewController(shareAlert, ...) 

yourCurrentViewController.presentViewController(shareAlert, ...)

而且你不应该使用 UIAlertView,因为它在 iOS 9 中已被弃用,并且可能在下一个 iOS 中被淘汰,所以使用 UIAlertController 并且你不必在不久的将来更改它

【讨论】:

    【解决方案2】:

    请检查: https://stackoverflow.com/a/32574681/5304286

    你可以在这个文件中调用alertShow函数顺便显示简单的信息:

     Utility.UI.alertShow("message", withTitle: "title", viewController: self)
    

    【讨论】:

      【解决方案3】:

      您可以使用UIAlertView,而不是使用UIAlertController,如下所示:

       var alert = UIAlertView(title: "Post Alert", message: "Your Post has been Shared with your Friends", delegate: nil, cancelButtonTitle: "Ok")
       alert.show()
      

      文档: https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIAlertView_Class/index.html

      注意:

      UIAlertView 在 iOS 9 中已弃用。

      【讨论】:

      • UIAlertView 在 iOS 9 中已弃用。
      猜你喜欢
      • 2015-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-09
      相关资源
      最近更新 更多