Ios Swift:访问另一个ViewController的字段

Ios Swift:访问另一个ViewController的字段,ios,swift,Ios,Swift,我想有一个选项卡式的应用程序,其中一页是保留调试信息。所以在那个页面上,我有一个文本视图。我希望其他视图控制器和单例数据访问等能够添加到文本区域。我在这里尝试过单例模式,但我认为这不起作用,因为单例实例与应用程序使用的实际实例不同。是否有方法从另一个ViewController或应用程序中的其他类访问实际实例 以下是DebugViewController: class DebugViewController : UIViewController { @IBOutlet weak var deb

我想有一个选项卡式的应用程序,其中一页是保留调试信息。所以在那个页面上,我有一个文本视图。我希望其他视图控制器和单例数据访问等能够添加到文本区域。我在这里尝试过单例模式,但我认为这不起作用,因为单例实例与应用程序使用的实际实例不同。是否有方法从另一个ViewController或应用程序中的其他类访问实际实例

以下是DebugViewController:

class DebugViewController : UIViewController {

@IBOutlet weak var debugTextField: UITextView!

override func viewDidLoad() {
    super.viewDidLoad()
    debugTextField.text = ""
}

func debug(text : String) {
    if debugTextField == nil {
        debugTextField = UITextView()
        debugTextField.text = ""
    }
    println("\(NSDate()) : \(text)")
    debugTextField.text = "\(NSDate()) : \(text) \n" + debugTextField.text
}

}

单例可以工作,但不能将其与IB绑定。您需要在AppDelegate中以编程方式创建它

另一个想法是简单地将对DebugViewController的引用放在需要的类中

var sharedDebugViewController: DebugViewController!

并从AppDelegate中初始化它们。

您不能通过传递变量将值分配给其他控制器UI,如label、textfeild或任何其他,您可以这样做

您可以使用一个全局类来创建

 class GlobalVariables : NSObject {

    var variableOne : String = String()

}
var global = GlobalVariables()
现在,当您收到消息时,请将其作为global.variableOne=您的消息执行 如果将变量设置为全局类,则可以在应用程序中的任何位置访问该变量。 在另一个控制器viewdidload上 用作

debugTextView.text = global.variableOne

实际上,我不希望每次向文本字段发送消息时都导航到调试控制器。我只希望当我从选项卡栏导航到它时,消息就在那里。检查它是否正常。。。是或否表示当您收到消息时,将其存储在全局变量中,并将全局变量分配给viewdidload上的该ui。当您随时导航到该ui时,它将始终在那里。这将起作用,但我不应该自己初始化ViewController。我想这就是为什么我的通用singleton不起作用的原因——它不是应用程序使用的实际实例。因此,我需要做的只是获取实际实例的代码。如果你想使用单例模式,那么你别无选择,因为IB将通过init创建实例,而不会通过某个Class.sharedInstance创建实例