当我点击SecondViewController中的后退按钮时,我遇到了这个问题。
2014-12-24 12:08:58.838 UPASS[5158:71438] Warning: Attempt to present <APPNAME.ThirdViewController: 0x7ae6bcc0> on <APPNAME.SecondViewController: 0x7af72060> whose view is not in the window hierarchy!
码
import UIKit
class SecondViewController: UIViewController {
@IBAction func btnSubmit(sender: AnyObject) {
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let thirdViewController = storyBoard.instantiateViewControllerWithIdentifier("successView") as ThirdViewController
self.presentViewController(thirdViewController, animated:true, completion:nil)
}
@IBAction func btnBack(sender: AnyObject) {
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let firstViewController = storyBoard.instantiateViewControllerWithIdentifier("methodView") as FirstViewController
self.presentViewController(firstViewController, animated:true, completion:nil)
}
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor(patternImage: UIImage(named: "bgCreateUser.jpg")!)
// Do any additional setup after loading the view.
}
}
请指教。感谢。
答案 0 :(得分:3)
btnBack应该回到早期的视图控制器吗?如果是这样,请使用:
返回上一个实例,而不是呈现新实例 dismissViewControllerAnimated(true, completion:nil)
答案 1 :(得分:3)
我所做的是删除SecondViewController
内的所有按钮并将其添加回来。我的错误是我从其他地方复制它。
答案 2 :(得分:1)
错误消息抱怨&#34; ThirdViewController&#34;,&#34; btnBack&#34;方法,但在btnSubmit方法中引用。
这表明当你点击&#34;后退按钮&#34;时,可能都会调用btnBack和btnSubmit。如果您将其中一个作为操作连接,然后将另一个方法连接到同一个按钮,则会发生这种情况。
通过选择Interface Builder(故事板编辑器)中的按钮验证您是否只连接了其中一个,然后使用Connections Inspector(Command + Option + 6)并确保其中只有一个连接到该按钮。
答案 3 :(得分:0)
从嵌入容器的视图控制器执行segue时,开发人员可能会收到此警告。
有用的解决方案: 使用来自容器父级的segue,而不是容器的视图控制器(例如后退按钮)