0

好吧,就 swift 2 而言,我真的是一个初学者,我在 中遇到错误presentViewController,这只是注销前的警报视图。但是我收到了一个试图以模态方式呈现活动控制器的应用程序。好吧,我有一个菜单栏,它使用包含菜单栏的SWRevealViewControllerandMenuBarTableViewController类。Logout按钮位于菜单栏的最后一个选项上,我正在浏览每个菜单,它工作正常,但这Logout AlertView会导致它崩溃并出现错误。这是代码。

class MenuBarTableViewController: UITableViewController {
    private struct PMText {
       static let logoutBody = "Are you sure you want to log out?"
    }

    var alert = UIAlertController(title: "Logout", message: PMText.logoutBody, preferredStyle: UIAlertControllerStyle.Alert)

    override func viewDidLoad() {
        super.viewDidLoad()

        alert.addAction(UIAlertAction(
             title: "No",
             style: UIAlertActionStyle.Cancel)
        { (action: UIAlertAction) -> Void in
             //do nothing just to close the alertView
            }
        )

        alert.addAction(UIAlertAction(
             title: "Yes",
             style: UIAlertActionStyle.Default)
        { (action: UIAlertAction) -> Void in
             self.performSegueWithIdentifier("log out", sender: nil)
            }
        )

        tableView.separatorColor = UIColor.clearColor()
    }

    override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
         for index in 0..<tableView.numberOfRowsInSection(indexPath.section) {
         let cellIndexPath = NSIndexPath(forRow: index, inSection: indexPath.section)
         let cell = tableView.cellForRowAtIndexPath(cellIndexPath)!
         if index == indexPath.row {
            cell.backgroundColor = UIColor(red: 254/255, green: 255/255, blue: 197/255, alpha: 1)
         } else {
             cell.backgroundColor = UIColor.whiteColor()
         }


         if (indexPath.row == 6) {
             presentViewController(alert, animated: true, completion: nil)
         }
       }
    }



}

好吧,我不确定是什么导致我的代码崩溃并收到这种异常,因为我在其他视图控制器中多次执行警报视图控制器。但这是我第一次尝试这个MenuBarTableViewController

4

1 回答 1

0

通过使用 SWReveal 为菜单栏创建一个普通的 swift 文件,而不是创建一个可可触摸文件,我找到了一个解决方案。所以它现在会import Foundation而不是import UIKit. 菜单栏滑块有问题,因为当它是可可触摸时,滑块被视为控制器,而 AlertView 是要呈现的另一个视图控制器。

于 2016-09-28T06:36:46.600 回答