我想从不同的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