我想從不同的viewController(它是一個CollectionViewCell)在我的rootViewController中訪問一個變量。從Swift的CollectionViewCell中的rootViewController訪問var
window!.rootViewController = ViewController()
我宣佈了var像這樣:
import UIKit
class ViewController: UIViewController {
var testString : String = "Test";
override func viewDidLoad() {
[…]
並嘗試訪問這樣說:
import UIKit
class MainCollectionViewCell: UICollectionViewCell {
override init(frame: CGRect) {
[…]
super.init(frame: frame)
let mainView = self.window!.rootViewController
var testStringFromMainView = mainView.test
[…]
但所有我不斷收到是:
Type of expression is ambiguous without more context
奇怪的是,當我嘗試例如
mainView.view.backgroundColor = UIColor.redColor()
它的工作原理。
我搞不清楚我做錯了什麼。任何幫助表示讚賞!
如果我在單元格內有一個按鈕,最好的做法是什麼?觸摸時應該改變我的rootViewController的屬性?我怎樣才能通過這個事件? – chl
通知或某種形式的委託,但它爲什麼在根視圖控制器上? – Wain
我需要更改放置在根視圖控制器上的約束(但會影響CollectionView的大小)......調用這樣做的根視圖控制器的函數也可以,但我猜這會和那個一樣不恰當我打算使用。 – chl