2015-05-12 46 views
1

定義我在裏面class AppDelegate AppDelegate.swift文件中的變量var window: UIWindow?,我想在裏面class xyz其他類xyz.swift文件來使用,如Get current view controller from the app delegate (modal is possible)解釋在這裏,但我在第一行獲得任何幫助錯誤將不勝感激。這裏是從xyz.swift如何使用其它類變量是在AppDelegate中

func CurrentView() -> UIView 
    { 
    let navigationController = window?.rootViewController as? UINavigationController // Use of Unresolved identifier 'window' 
    if let activeController = navigationController!.visibleViewController { 
    if activeController.isKindOfClass(MyViewController) { 
     println("I have found my controller!") 
      } 
     } 
    } 

代碼即使我使用let navigationController = AppDelegate.window?.rootViewController as? UINavigationController錯誤是'AppDelegate.Type' does not have member named 'window'

+0

你在哪裏定義了var windows?它是在AppDelegate類中還是在文件中?此外,CurrentView()方法在哪裏定義?請使用上下文發佈代碼。 – Abdullah

+0

'var window:UIWindow?'在AppDelegate類中,'CurrentView()'函數是另一個名爲'class ServiceManager:NSObject {''你想要的其他代碼? –

回答

1

您可能需要執行如下操作:

var appDelegate = UIApplication.sharedApplication().delegate as AppDelegate 
    let navigationController = appDelegate.window?.... 

正如@ Dave Durbin指出,你正試圖將一個類中定義的變量用於另一個類,而不需要定義類的引用。

+0

謝謝大家都做完了,我在學習,所以我錯了一些時間 –

1

這行代碼是xyz.swift

let navigationController = window?.rootViewController as? UINavigationController // Use of Unresolved identifier 'window' 

你不提供window任何上下文所以預計會在這個類或全局變量中。

這是接近:

navigationController = AppDelegate.window?.rootViewController as? UINavigationController 

你似乎認識到,你需要將你的AppDelegate實例中引用該窗口的變量,但是你正在使用引用靜態變量和窗口的語法是一個成員變量。

我建議你通過迅速的手動閱讀和更好地瞭解變量的作用域和檢查:

How do I get a reference to the app delegate in Swift?

相關問題