如何从另一个ViewController中的按钮在单独的ViewController中更改textView?

时间:2015-06-17 20:41:12

标签: ios xcode swift button uiviewcontroller

我有一个集合视图,其中包含各种也是按钮的单元格。单击其中一个按钮后,会显示一个单独的ViewController(我只是将按钮连接到ViewController并单击“show”)。我想知道如何在单独的ViewController中为我的集合视图中的每个不同按钮切换textView。

以下是我的CollectionsView中的代码:

class Example : UICollectionViewController {

var Array = [String]()

var ButtonArray = [String]()

@IBOutlet var menu: UIBarButtonItem!

override func viewDidLoad() {
    self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())

    Array = ["A", "B", "C, "D]

    ButtonArray = ["", "", "", ""]

    menu.target = self.revealViewController()
    menu.action = Selector("revealToggle:")

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}

override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return Array.count
}

override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    var cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! UICollectionViewCell

    var Label = cell.viewWithTag(1) as! UILabel

    Label.text = Array[indexPath.row]

    var Button = cell.viewWithTag(2) as! UIButton

    Button.setTitle(ButtonArray[indexPath.row], forState: UIControlState.Normal)

    return cell
}  
}

单独的ViewController中的代码:

class Example2: UIViewController {

@IBOutlet var exText: UITextView!


override func viewDidLoad() {


}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}


}

2 个答案:

答案 0 :(得分:0)

请按照以下步骤操作......

1:创建一个名为Manager.swift的独立文件,并将此代码放入其中......

//manager.swift

    import Foundation

    struct Manager {

    static var messageText = [String]()


    }

2:按Shift + Command + K清洁项目。

3:在第一个视图控制器中,将messageText设置为文本字段text ...

Manager.messageText.append(self.textField.text)

4:在第二个视图控制器中检索文本并将标签设置为消息文本...

self.label.text = Manager.messageText[0]

5:你的成品!!

答案 1 :(得分:0)

这是一种方式,它依赖于创建一个全局变量,可以在任何可用类的范围之外定义,此处不需要新文件。只需在类代码上方(或下方)定义变量即可。 另一个好方法是使用自动保存在应用程序设置文件中的UserDefaults,这样就可以保留变量,再次重新启动应用程序时,值将与您保留的值相同。 Swift 3 +

To store/change a value:

    UserDefaults.standard.setValue(yourValue, forKey: "yourKey")

To retrieve a value

    UserDefaults.standard.value(forKey: "yourKey")