我正在編程開發一個非常簡單的Swift應用程序(沒有故事板)。我有一個HomeViewController在Swift中使用幾個視圖控制器
import UIKit
class HomeViewController: 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.
}
func createButton(){
let button = UIButton()
button.setTitle("Start", forState: .Normal)
button.setTitleColor(UIColor.blueColor(), forState: .Normal)
button.frame = CGRectMake(100,200,50,50)
button.addTarget(self, action: "timerPressed:", forControlEvents: .TouchUpInside)
self.view.addSubview(button)
}
}
和我有以下
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let home = HomeViewController()
home.createButton()
}
}
當我打電話home.createButton()我期待有一個按鈕來顯示,但目前它沒有。我知道該方法的工作原理,因爲當我將createButton()方法移動到ViewController類中時,它顯示按鈕。我是否錯過了如何正確調用HomeViewController中的createButton方法。有沒有更好的習慣做我想做的事情?
您正在創建一個homeviewcontroller的新實例它的視圖不存在於視圖層次結構中 –
您並未將按鈕添加到您要調用的vie控制器 –
您應該將homeViewController添加爲viewController的子控制器。就像'addChildViewController(home)self.view.addSubview(home.view)'' – Lucho