我有一个UIView被叫,baseView并且我有我在initWithFrame哪里添加一些其他视图和做一些自定义的东西.同一视图也有一个NIB文件.
现在我有一个UIViewController名为的类AppController,我想将baseView视图添加到视图的视图中,AppController所以我这样做:
self.view = baseView;但问题是NIB文件没有加载.如何确保定制的东西和NIB文件加载/运行?
在Obj-C中,交换机只能评估数字.我希望能够用它来比较对象类,例如:
switch (currentSubViewController.class)
{
case UITableViewController.class :
<do stuff>
break;
case UICollectionViewController.class :
<do stuff>
break;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这个目标?我真的希望能够使用一个开关,因为它使得它在不同的情况下很容易阅读,并且我可以在将来的任何时候添加更多的案例.有任何想法吗?
当我尝试创建一个UIViewControllerin 的实例时Swift,即使我没有在视图控制器中定义任何指定的inits(或其他任何东西,FWIW),所有继承的初始化器都不可用.
此外,如果我尝试通过使其成为根视图控制器来显示它,它永远不会显示:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
window = UIWindow(frame: UIScreen.mainScreen().bounds)
window?.makeKeyAndVisible()
window?.backgroundColor = UIColor.greenColor()
let vc = ImageViewController()
window?.rootViewController = vc
return true
}
Run Code Online (Sandbox Code Playgroud)
视图控制器的代码只是Xcode的模板:
import UIKit
class ImageViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
} …Run Code Online (Sandbox Code Playgroud)