我只是想將任何UIViewController
的子類別轉換爲AnyClass
,以便從isKindOfClass
方法檢查,因爲此方法以AnyClass
作爲參數。如何將Swift中的UIViewController轉換爲AnyClass
回答
而不是使用舊的Objective-C
API,您可以在swift中使用as
或is
關鍵字。
if let controller = yourViewController as? SomeClass {
// use controller, is already casted to SomeClass
}
if yourViewController is SomeClass {
let controller = yourViewController as! SomeClass
// use controller now
}
ADDING: 如果存儲器地址不同,物體是不相等的。嘗試檢查答案中提到的topViewController
類型。
if let topViewController = appDelegateObj.navigationController.topViewController as? YOUR_VIEW_CONTROLLER_CLASS {
// do something
}
func someMethod (someClass : AnyClass) {
if someClass is YourClass {
someClass.someMethodOfYourClass()
}
}
要使用此方法
class YouClass: UIViewController {
func something() {
someMethod(self) // sending itself (a.k.a) YourClass
}
}
希望這有助於基於評論
編輯:
let controller = appDelegateObj.navigationController!.topViewController
if controller is ClassName {
// controller good to use
}
好,謝謝 Akansha 讓我檢查 –
好的@GopalDevra我的名字是Akshansh哈哈。 –
抱歉,男人:) 謝謝Akshansh –
最後,我在這個解決方案達到
let name = NSStringFromClass((vcAnyObj?.classForCoder)!)
let name2 = NSStringFromClass((appDelegateObj.navigationController!.topViewController?.classForCoder)!)
if name == name2 {
print("same view controller")
}else {
print("different view controller")
}
你甚至可以重寫'=='操作符來進行正確的比較。如果兩個viewController屬於同一個類,這並不意味着它們是平等的 –
- 1. 如何將AnyClass轉換爲特定的類並在Swift中動態初始化它?
- 2. 將UITableViewController轉換爲xcode 4.2中的UIViewController
- 3. 如何將Swift 2中的Singleton類轉換爲Swift 3?
- 4. Swift:你如何將CGPoint轉換爲CLLocationCoordinate2D
- 5. 如何將這個objc轉換爲SWIFT
- 6. Swift 3:如何將[String:AnyObject]轉換爲[String:String]?
- 7. 如何將URL轉換爲NSImage(Swift 3)
- 8. 如何將其轉換爲Swift?
- 9. 如何將MYSQL DateTime轉換爲NSDate - Swift
- 10. 如何在Swift中切換SKScene和UIViewController
- 11. Self.Type不能直接轉換爲AnyClass擴展到Objective-C類在swift
- 12. 將JSON轉換爲Swift中的對象
- 13. 將Objective-C中的rangeOfString轉換爲Swift
- 14. 將uiimageview轉換爲pdf - Swift
- 15. 將Objective-C轉換爲Swift
- 16. Swift將AnyObject轉換爲塊
- 17. SWIFT將NSTimeInteval轉換爲NSDate
- 18. 將mutableCopy轉換爲Swift
- 19. 將URL轉換爲AVAsset - Swift
- 20. 將swift轉換爲java?
- 21. 如何將任何轉換爲Swift 3中的CGFloat
- 22. Swift 2 - 將objective-C#define轉換爲swift
- 23. 使用UITableView將UIViewController轉換爲UITableViewController
- 24. 將UIViewController代碼轉換爲UIView
- 25. 如何將下面的Objective-C中的JSON轉換爲Swift?
- 26. Swift - 將任何IntegerType轉換爲Int
- 27. Swift - 如何將swift數組轉換爲NSArray?
- 28. Swift:無法將類型'GameScene'的值轉換爲期望的參數類型'UIViewController!'
- 29. 如何將Swift 3中的apns數據轉換爲字符串?
- 30. 如何將Swift中的NSNull轉換爲零?
我想這樣做 if appDelegateObj.navigationController!.topViewController! == myViewController {// 沒有得到真實的,即使都是相同的,但內存引用不同 }其他{ //需要辦理別的事情 } –
感謝盧卡斯·我想它 –