Swift與OC混編第一天
首先是swift調用oc,在swift的AppDelegate中使用oc控制器注意:必須先把oc頭文件導入到一個叫 "項目名稱-Bridging-Header"中然后再代理中進行調用 oc控制器 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Override point for customization after application launch. UIView.appearance().tintColor = UIColor.blackColor() window = UIWindow(frame: UIScreen.mainScreen().bounds) window?.backgroundColor = UIColor.whiteColor() window?.makeKeyAndVisible() UITabBar.appearance().translucent = false UITabBar.appearance().backgroundColor = UIColor.blackColor() UITabBar.appearance().tintColor = UIColor.blackColor() // 設置視圖主窗口 self.window?.rootViewController = makeRootViewController() return true } func makeRootViewController() -> UITabBarController { let tabBarVC = UITabBarController() tabBarVC.viewControllers = makeChildViewControllers() tabBarVC.selectedIndex = 0 return tabBarVC } func makeChildViewControllers() -> [UIViewController] { let cons: [(UIViewController.Type, String, String)] = [(OneController.self, "Home".localized(), "Home"), (TreeController.self, "Statistics".localized(), "Dashboard")] return cons.map { let vc = UINavigationController(rootViewController: $0.init()) vc.tabBarItem = UITabBarItem(title: $1, image: $2.originalImage, selectedImage: $2.templateImage) return vc } }// 其中localized()和templateImage是寫了一個工具類localized
//// Strings.swift//import Foundation/// Internal current language keylet LCLCurrentLanguageKey = "LCLCurrentLanguageKey"http:/// Default language. English. If English is unavailable defaults to base localization.let LCLDefaultLanguage = "en"http:/// Name for language change notificationpublic let LCLLanguageChangeNotification = "LCLLanguageChangeNotification"public extension String { /** Swift 2 friendly localization syntax, replaces NSLocalizedString - Returns: The localized string. */ public func localized() -> String { if let path = NSBundle.mainBundle().pathForResource(Localize.currentLanguage(), ofType: "ltemplateImage//// Images.swift//import Foundationpublic extension String { public var image: UIImage? { return UIImage(named: self) } public var templateImage: UIImage? { return UIImage(named: self)?.imageWithRenderingMode(.AlwaysTemplate) } public var originalImage: UIImage? { return UIImage(named: self)?.imageWithRenderingMode(.AlwaysOriginal) }}但是還有一個問題就是 圖片選中的時候不能選擇到選中的狀態。 下篇解決。
新聞熱點
疑難解答