2016-09-27 4 views
0

Eh bien, je suis vraiment un débutant en termes de swift 2 et j'ai une erreur dans presentViewController, c'est juste un alerte avant de vous déconnecter. Mais je reçois une application a essayé de présenter modally un contrôleur actif. Eh bien, j'ai une barre de menu en utilisant les classes SWRevealViewController et MenuBarTableViewController qui contient la barre de menu. Logout bouton était sur la dernière sélection de la barre de menu, et je suis en train de parcourir chaque menu et cela fonctionne bien, mais Logout AlertView fait tomber en panne et obtient cette erreur. Voici le code."Application essayé de présenter un contrôleur actif modale" iOS8 - Quand je veux présenter un AlertView en se déconnectant

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) 
     } 
     } 
    } 



} 

Eh bien, je ne suis pas sûr de ce que fait mon accident de code et a reçu ce genre d'exception depuis que je suis en train de faire Alert View Controller beaucoup de temps dans mon autre View Controller. Mais c'est la première fois que j'essaye ça en MenuBarTableViewController

Répondre

0

J'ai trouvé une solution pour cela en créant un fichier swift simple pour la barre de menu en utilisant le SWReveal plutôt que de créer un fichier tactile en cacao. Donc, il va maintenant import Foundation plutôt que import UIKit. Il a des problèmes avec le curseur de la barre de menus parce que le curseur est considéré comme un contrôleur lorsqu'il s'agit d'une touche de cacao et l'AlertView est un autre contrôleur de vue à présenter.