1.storyboard跳转
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "row1" {
//目的地
let ctl :RowController = segue.destination as! RowController
ctl.dataSource = ["row1","row1","row1"]
}
}
switch indexPath.row {
case 0:
self.performSegue(withIdentifier: "row1", sender: self)
default:
self.performSegue(withIdentifier: "row2", sender: self)
}
2.tabBar图片不渲染、设置文字颜色
//设置不被渲染的图片
var img:UIImage = UIImage.init(named: imageArr[index])!
img = img.withRenderingMode(UIImageRenderingMode.alwaysOriginal)
var heightImg:UIImage = UIImage.init(named: heighImageArr[index])!
heightImg = heightImg.withRenderingMode(UIImageRenderingMode.alwaysOriginal)
navCtl.tabBarItem.image = img
navCtl.tabBarItem.selectedImage = heightImg
//通过NSAttributedStringKey设置文字的颜色
navCtl.tabBarItem.setTitleTextAttributes([NSAttributedStringKey.foregroundColor : UIColor.gray], for: .normal)
navCtl.tabBarItem.setTitleTextAttributes([NSAttributedStringKey.foregroundColor : UIColor.red], for: .selected)
3.通过字符串创建UIViewController
1.首先我们要获取命名空间
let namespace = Bundle.main.infoDictionary!["CFBundleExecutable"] as! String
2.根据命名空间创建anyClass
let str = namespace + "." + "HomeController"
let cls:AnyClass = NSClassFromString(str)!
3.创建UIViewController
let vcCls = cls as! UIViewController.Type
let vc = vcCls.init()
注:项目命名不能带有特殊符号比如swift.cs这样的是不能正常创建控制器的