[英]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方法。
我假設您有一個名為A的UITableViewController ,然后呈現了一個帶有文本字段的名為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.