簡體   English   中英

Objective-C(iOS)從另一個類訪問UITextField的文本

[英]Objective-C (iOS) Access UITextField's text from another class

這個問題非常基礎,如果您的回答不正確,我深表歉意。

所以:我有一個UITableView和另一個viewController。 我正在UITableView的.m文件中更新一些有關CoreData的信息。 為此,我需要另一個viewController中的文本字段中的文本。

因此,由於缺乏經驗,我嘗試:

[entity setName:[NSString stringWithFormat:@"%@", viewController.entityNameInputField.text]];

為了清楚起見,我將一些內容重命名。 實體是我的實體(不開玩笑),我設置的屬性稱為Name,viewController是textField所在的地方,文本字段稱為EntityNameInputField。

我比為什么要解決我的問題更感興趣為什么這種事情不起作用。 為什么我不能以這種方式僅從文本字段中獲取文本?

我想用不同的措詞來表達:

如果我在A類中,並且想訪問諸如B類中的NSString的值,為什么我不能從我設法理解的內容中僅使用ClassA.TheString或[ClassA TheString] .... ,我正在發送這些對象的getter方法,但似乎看不出為什么這不起作用...

任何幫助,將不勝感激 :)

還有一些代碼將很有用,以查看可能引起混亂的原因,但是如果您在類中聲明了屬性,則關聯的實例變量(或具有手動聲明的訪問器)將可以訪問關聯的ivars。

因此,類似下面的內容將可以正常工作。

MyClassA * instanceOfA = [[myClassA alloc] init];
MyClassB * instanceOfB = [[myClassB alloc] init];

instanceOfA.myProperty = instanceOfB.myProperty;

據我了解,這不是從另一個類訪問值的問題。 假設兩個視圖控制器都保留在內存中,則您始終可以調用彼此的getter / setter方法。

我假設您有一個名為AUITableViewController ,然后呈現了一個帶有文本字段的名為B的自定義UIViewController 用戶在文本字段中點擊某些內容,然后您希望此文本返回到表視圖控制器。 如果在B內部您具有對A的有效引用,則可以將其稱為適當變量的設置器,然后關閉自定義控制器。

例如,在B的標題中,您可以具有:

@interface MyViewController : UIViewController {
     id tableViewController;
}
@property (nonatomic, retain) id tableViewController;

然后在A中創建B時:

MyViewController *B = [[MyViewController alloc] init];
B.tableViewController = self; // this passes a reference to A

因此,當您位於B中並且用戶在文本字段中輸入了輸入內容時,您可以執行以下操作

[self.tableViewController setVarname:textField.text];

假設A中有一個varname變量,B中有一個textField。

您還可以通過調用以下命令獲得對A的訪問權限,而無需創建單獨的變量

[self parentViewController]

如果那更適合您。

暫無
暫無

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

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