我似乎無法在我的主視圖控制器和顯示在彈出視圖(iPad)內部的表視圖控制器之間獲得任何類型的通信。無法在主視圖控制器和彈出視圖之間傳遞消息
我設置了一個導航控制器內的表視圖以通常的方式:
// create popover
if (self.popoverController == nil) {
filesViewController = [[[MyTableViewController alloc] initWithFiles:fileList] autorelease];
UINavigationController *navCtrl = [[[UINavigationController alloc] initWithRootViewController:filesViewController] autorelease];
self.popoverController = [[UIPopoverController alloc] initWithContentViewController:navCtrl];
self.popoverController.delegate = self;
// resize popover
self.popoverController.popoverContentSize = CGSizeMake(320.0, 44 + [fileList count] * 44);
}
一切工作正常,而且我通過文件名(的fileList)的數組表視圖,它以一個名爲listOfFiles的數組的形式保存在Table View中。表視圖顯示文件名,當用戶選擇一個文件名時,我想將該文件名傳回主視圖控制器。但是,我無法從Table View的didSelectRowAtIndexPath方法返回Main VC。我嘗試過各種各樣的網點,並嘗試在didSelectRowAtIndexPath中創建一個新對象來處理來自表視圖的文件名。我可以將文件名傳遞給新對象,但是當我嘗試將其發送到主VC時,它將再次爲空。在彈出窗口處於活動狀態時發送給我的主VC的所有內容都會顯示爲空。
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {
NSLog(@"%@", handler.addressForImageFile);
self.popoverController = nil;
[self.popoverController release];
}
是有一些原因,我的主要VC不會得到任何東西,但我從表視圖空的對象?我花了好幾天嘗試了很多不同的東西。我覺得我的知識豐富如何工作有一些根本性的差距。當從表視圖中選擇一個簡單的方法將字符串發送回主VC時?
非常感謝您的幫助!
謝謝。我最終通過使用我的主視圖控制器作爲數據源和表視圖的代理來解決此問題。希望幾天前我想到了這一點,併爲自己節省了很多痛苦! – beev 2011-05-07 15:52:16
值得注意的是,如果您最終將主視圖控制器用作數據源/代理,則此答案可以爲您節省一些Google搜索 - http://stackoverflow.com/a/11068532/953105 – paulrehkugler 2013-05-15 03:34:47