【发布时间】:2015-08-24 22:07:46
【问题描述】:
我有一个表格视图,我在其中点击披露按钮 (i) 以模态显示另一个视图。每次出现模态视图时,应用都会因此错误而崩溃;
NSInvalidArgumentException',原因:'应用程序试图呈现 模态的主动控制器
这是在 ExamTableView 上调用的;
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showHTML" {
let vc : HTMLViewController = segue.destinationViewController as! HTMLViewController
vc.htmlFile = htmlFile
presentViewController(vc, animated: true, completion: nil)
}
它是通过点击 ExamTableView 中的按钮调用的;
override func tableView(tableView: UITableView, accessoryButtonTappedForRowWithIndexPath indexPath: NSIndexPath) {
let examListing = exams[indexPath.row]
htmlFile = examListing.htmlFile!
print("File: " + htmlFile)
self .performSegueWithIdentifier("showHTML", sender: self)
}
当我得到 htmlFile 变量的打印时,我确实得到了新视图的 viewDidLoad。
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
print(htmlFile)
}
但一旦模态视图出现在屏幕上,应用就会崩溃。我可以看到它到达,但随后它消失了。 不用说,我是 Swift 新手,当然还有 Swift 2。
任何人都可以看到我做错了什么?
【问题讨论】:
-
presentViewController(vc, animated: true, completion: nil) 你的代码有问题,你不应该那样做,你再次呈现将通过 segue 呈现的同一个视图控制器