簡體   English   中英

Swift:在ViewController中訪問變量

[英]Swift : Access variable in ViewController

我有一個帶有按鈕,索引和一個按下按鈕時調用的函數的View Controller,這是代碼示例:

視圖控制器:

func buttonPressed(){

index++

}

然后我有一個我想在其中訪問並從View Controller打印索引的類

類:

print("Index is \(ViewController().index)")

顯然這是行不通的,有人知道我該如何訪問嗎? 我無法真正實例化它,因為它的ViewController以及它都不是相同的索引。

您可以將索引保存到NSUserDefaults或plist文件。 嘗試使用getter和setter使它自動持久化,如下所示:

Xcode 8.3.3•Swift 3.1.1

extension UserDefaults {
    var indexA: Int {
        get {
            return integer(forKey: "indexA")
        }
        set {
            set(newValue, forKey: "indexA")
        }
    }
}

用法:

加載

let indexA = UserDefaults.standard.indexA

設置/更改

UserDefaults.standard.indexA = 10

你應該:

  1. index添加集合public或internal修飾符,以便在類外使用

  2. 創建一個ViewController的實例

  3. 從實例檢索index

     let vc = ViewController() print("index: \\(vc.index)") 
let vc = ViewController()  
print("index: \(vc.index)")

不正確,因為vc中沒有viewController,其中包含您單擊的按鈕。 必須再次聲明

以防萬一,您應該擁有一個ViewController單例(例如: viewcontrollerInstall ),並放置在任何地方,以便可以訪問在ViewController ViewDidLoad ,您可以設置viewcontrollerInstall = self

在您的新課堂電話中:

print("Index is \(viewcontrollerInstall.index)")

嘗試將具有索引和按鈕的視圖控制器的引用傳遞給要訪問它的類。

從那里,您可以訪問該類中該視圖控制器的相同索引值和其他屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM