如果要實現這一行爲,通過SendingDetailController
上一個視圖控制器的引用。通過這種方式,詳細視圖控制器可以將消息發送到堆棧中的前一個消息。
在你SendingDetailController
定義弱引用:
// in .h
SendingController *sendingController;
@property(assign) SendingController *sendingController;
// in .m
@synthesize sendingController;
-(void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// retrieve the string and send the message
[sendingController didSelectString:theString];
}
現在推SendingDetailController
堆棧上不要忘記設置其屬性sendingController
之前。
// .m
// where you push the vc
if(!sendingDetailController) {
sendingDetailController = [[SendingDetailController alloc]
initWithNibName:@"TheNIBName"
bundle:nil];
sendingDetailController.sendingController = self;
}
[self.navigationController pushViewController:sendingDetailController
animated:YES];
並編寫接收字符串的方法。
-(void)didSelectString:(NSString *)aString {
// do anything with string
[self.navigationController popViewControllerAnimated:YES];
}
這應該可以完成這項工作。
我應該釋放sendingController財產SendingDetailController的dealloc的? – LIAL
@LIAL - 不,如您在屬性定義中所看到的那樣,該值只是分配的,而不是保留的。這是一個薄弱的參考。 – 2011-07-23 13:11:51