我有一个Obj C项目,我已经添加了一个Swift viewController。
我正在尝试将一个故事板附加到viewController。
我可以通过编程方式向视图添加内容,但我无法显示故事板。
我也尝试使用xib作为Swift viewController的vie而没有运气。
从didSelectRowAtInexPath调用Swift vie形式Obj C:
SwiftController *sc = [[SwiftController alloc] init];
[self.navigationController pushViewController:sc animated:YES];
SwiftController.swift:
import Foundation
import UIKit
@objc class SwiftController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// This prints
println("in the scrolling view")
// This works
self.view.backgroundColor = .redColor();
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
故事板连接正确:
这就是我每次都得到的:
使用xib会发生相同的结果。
Apple Docs和网络上有很多东西,在这里处理许多问题“围绕”这个问题,但我没有发现任何可以帮助我看到我在这里做错的事情。按照工作方式或Obj C做事似乎不起作用。 显然我是Swift的菜鸟。任何帮助都会很棒。感谢。
答案 0 :(得分:1)
如果您使用xib作为swift viewController,则必须按以下方式初始化它:
SwiftController* controller = [[SwiftController alloc] initWithNibName:@"SwiftController" bundle:nil]
其中SwiftController也是xib的名称。
我在iOS 8中注意到了这个问题,但是当你按照这样的方式启动控制器时,它在iOS 9和iOS 10中正常工作:
SwiftController* controller = [[SwiftController alloc] init];