我有一個主視圖控制器和一個'首選項'視圖控制器。 首選項視圖控制器上有一個「保存」按鈕。 IBAction
位於主ViewController.m文件中。如何從另一個View Controller IBAction引用主視圖控制器TextField?
將首選項保存到NSUserDefaults
之後,IBAction彈出回主視圖控制器。
此處的最後一個操作是在該主視圖控制器窗口中「清除」UITextField
之一。
問題是,我似乎無法弄清楚如何簡單地引用主視圖控制器。
在VisualBasic中,我們會說:Window1.finalTextField.text =「」;
發現'Window1'的obj-c相當於什麼? 我已經嘗試了ViewController的子類,但似乎只適用於其他 Windows,而不是主視圖控制器。
最後一行代碼不起作用:self.finalTextField.text = @「」;
- (IBAction)savePrefButton:(id)sender
{
int yPref = prefYsegmentedControl.selectedSegmentIndex;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setInteger:yPref forKey:@"yPref"];
[defaults synchronize];
NSLog(@"Data saved");
[self.navigationController popViewControllerAnimated:YES];
self.finalTextField.text = @"";
}
可能值得一提的是,如果mainViewController對propertyViewController保持強引用或保留引用,則此方法可能會創建保留週期。爲了避免這種情況,你可以使用委託模式。 – isaac 2013-02-10 23:55:27
finalTextField是一個IBOutlet:@property(retain,nonatomic)IBOutlet UITextField * finalTextField; 但以這種方式訪問它不起作用。 我有一個ViewController.h和一個ViewController.m文件。 我在回答你的答案的第二部分,但最後一個條目對我來說沒有意義。那去哪了? 「propertyViewController.mainViewController = self;」 – mstace 2013-02-11 00:13:47
在您創建並初始化您的主視圖控制器中的屬性視圖控制器後,就會馬上進行。想必你有一個地方,你初始化它,並推到導航控制器。在將其推入導航控制器之前,請將參考設置回主體,以便您可以在屬性視圖控制器中使用參考。 – Joel 2013-02-11 01:35:28