2017-06-01 232 views
-1

我正在尋找一種方法來創建一個浮動列表(AlertView內的TableView)與對象列表中的數據並單擊一個元素給我對所選對象的引用。動態填充動作表

對於這個我使用的是動作片和一個for循環如下

@IBAction func btnShowList_onClick(_ sender: Any) { 
    let alertController = UIAlertController(title: "Action Sheet", message: "List of Superheroes", preferredStyle: .actionSheet) 

    for item in arrSuperHeroes{ 
     let superbutton = UIAlertAction(title: (item as! SuperHeroe).nombre , style: .default, handler: { (action) in 
      self.superSel = item as! SuperHeroe 
      print(self.superSel.name) 
     }) 
     alertController.addAction(superbutton) 
    } 

    self.navigationController!.present(alertController, animated: true, completion: nil) 
} 

但我有這個錯誤在最後一行的執行

fatal error: unexpectedly found nil while unwrapping an Optional value (lldb)

任何人可以幫助我嗎?怎麼了?有沒有其他方法可以做到這一點?

+0

哪條線導致錯誤? – rmaddy

+0

你有很多強制downcasts和force-unwraps('!')。其中之一是'無'。 – JAL

+0

問題是我試圖在navigationController中呈現的最後一行,它必須存在於ViewController – Kevtho

回答

0

我認爲你需要提出警告如下:

self.present(alertController, animated: true, completion: nil) 
+0

爲什麼?我認爲導航控制器是零(這就是爲什麼你會得到這個錯誤),你需要把它呈現在你的視圖控制器,但不是導航控制器。 –