所以我能夠將數據從第一視角轉移到像這樣的第二種觀點:傳輸數據回到最初查看
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"Check Mark Segue"])
{
NSLog(@"Transfering Data");
AutoRenewDrop *controller = segue.destinationViewController;
controller.transferData = self.renewDate.text;
}
}
不過,我嘗試傳送回一個新值renewDate.text時用戶點擊完成並且transferData正常工作,但renewDate.text不會更改。這裏是我用來傳回數據的代碼:
-(IBAction)done:(UIStoryboardSegue *)segue {
[self.navigationController popViewControllerAnimated:YES];
AddR *add = [[AddR alloc] init];
add.renewDate.text = transferData;
}
有人能告訴我如何解決這個問題嗎?
你爲什麼期望它工作? ' - [[SomeClass alloc] init]'每次調用時都會返回一個新實例,所以這會設置AddR類的另一個實例的屬性... *您應該區分類和對象。 – 2012-11-03 14:00:45
我明白了,謝謝你的評論。所以我會做AddR *添加;?對不起,我對Xcode並不陌生,但這是我第一次不得不在視圖之間共享數據,所以我仍然在學習繩索。 – Zack
**不要那麼做!**在這種情況下,它或者將被初始化(並且崩潰),或者將是零,那麼它將不會執行任何操作。你需要添加一個屬性到第二個視圖,將它設置爲第一個視圖(因此本質上是傳遞第一個視圖本身),並且從第二個視圖中,在'self'(指向第一個視圖)上使用該屬性來設置文字。 – 2012-11-03 14:05:15