Ios 为什么parentViewController、presentingViewController和PresentedViewController始终为零
我有一个带有几个ViewController的简单应用程序,当我在VC中时,我需要知道我来自哪个VC,除了第一个。所有VCs都在故事板中创建,我使用以下代码浏览VCs:Ios 为什么parentViewController、presentingViewController和PresentedViewController始终为零,ios,swift,uiviewcontroller,sprite-kit,Ios,Swift,Uiviewcontroller,Sprite Kit,我有一个带有几个ViewController的简单应用程序,当我在VC中时,我需要知道我来自哪个VC,除了第一个。所有VCs都在故事板中创建,我使用以下代码浏览VCs: class FirstVC: UIViewController { func ShowStartVC() { if gFirstStart { let vc = self.storyboard!.instantiateViewControllerWi
class FirstVC: UIViewController
{
func ShowStartVC()
{
if gFirstStart
{
let vc = self.storyboard!.instantiateViewControllerWithIdentifier("EvalUserLevelVC") as EvalUserLevelVC
self.presentViewController(vc, animated: false, completion: nil)
}
else
{
let vc = self.storyboard!.instantiateViewControllerWithIdentifier("ChoixLevelVC") as ChoixLevelVC
self.presentViewController(vc, animated: true, completion: nil)
}
}
func ShowPrefsVC()
{
let vc = self.storyboard!.instantiateViewControllerWithIdentifier("PrefsVC") as PrefsVC
self.presentViewController(vc, animated: true, completion: nil)
}
}
class FirstVCSceneClass: SKScene
{
var VCFirst = FirstVC?()
override func touchesBegan(touches: NSSet, withEvent event: UIEvent)
{
for touch: AnyObject in touches
{
let location = touch.locationInNode(self)
switch self.nodeAtPoint(location).name!
{
case "Start":
VCFirst?.ShowStartVC()
self.paused = true
case "Preferences":
VCFirst?.ShowPrefsVC()
self.paused = true
default:
break
}
}
}
}
在上面的代码中,ChoixLevelVC可以从这里调用,从另一个VC调用的方式完全相同,我需要知道它是从哪个VC调用的。我的理解是,当我从ChoixLevelVC UIViewController类访问属性presentingViewController时,它应该具有此信息
但是如果我把下面的代码放在ChoixLevelVC中,一切都是零,尽管我希望在property presentingViewController中找到FirstVC
class ChoixLevelVC: UIViewController, UICollectionViewDelegateFlowLayout, UICollectionViewDataSource
{
override func viewDidLoad()
{
println("ParentViewController : \(self.parentViewController)")
println("presentingViewController : \(self.presentingViewController)")
println("presentedViewController : \(self.presentedViewController)")
}
}
在每一个VC中都是一样的。为了正确设置这些属性,我需要做些什么吗?println语句是在UIViewController子类中还是在SKScene子类中?println在每个UIViewController子类的viewdidload func中。编辑使它更清晰有没有更新过这个问题?从我的modalVC访问我现有的GVC时遇到同样的问题。