好吧,我已經在這上了幾個小時了,並且認爲是時候聯繫了。我第一次在一個故事板上使用多個tableviews(2)。我用自己的視圖控制器(主視圖控制器)設置故事板。我將第一個表格委託給主視圖控制器作爲常用模式。對於第二個表格視圖,我將一個單獨的類設置爲委託並委託給tableview和數據源。來自UITableView委託類的父級調用選擇器
事情看起來不錯,每個tableview加載並顯示正確的數據等等。我想在通過以下方式選擇行時採取行動: - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath等等等等等等。
所需的操作是啓動連接到「主視圖控制器」的新視圖控制器的繼續。我有一個在主視圖控制器中執行segue操作(否則工作)
選擇器我無法弄清楚如何建立一個連接從代理到主視圖控制器,所以我可以調用正確的選擇器然後將啓動賽格。通常在segues之間使用segue.parent .. segue.destination ....等等,它們在這種情況下不起作用。由於segue沒有連接到委託,因此我無法繼承委託類。
我試過這種方法,但它不工作: StartViewController:
稱爲VisitsMainPageDelegateVisitListDelegate = [[VisitsMainPageDelegate alloc] init];
[self.iboVisitsTableView setDelegate:self.VisitListDelegate];
[self.iboVisitsTableView setDataSource:self.VisitListDelegate];
LocalVisits *LV = [[LocalVisits alloc] init]; //datasource
VisitListDelegate.visits = [LV getLocalVisits]; //sets variable in delagate
Delegate類
#import <UIKit/UIKit.h>
@class StartViewController;
@interface VisitsMainPageDelegate : UIViewController
<UITableViewDelegate,UITableViewDataSource> {
StartViewController *sourceParent;
}
@property (nonatomic,retain) StartViewController *sourceParent;
@property (nonatomic,strong) NSMutableArray *visits;
@end
然後嘗試像這樣引用它:
[sourceParent jumpToVistDetailsForThisVisit:@"test"];
我沒有得到錯誤,但它不起作用。
任何幫助解決這個問題將不勝感激。
謝謝!
你給sourceParent賦了一個值嗎?即在ViewController中'delegate.sourceParent = self;'。 – 2012-04-08 06:56:21
不確定你的意思。我有一個主視圖控制器和2個tableviews。然後我創建了一個名爲VisitsMainPageDelegate的類,並在主視圖控制器中引用它,如下所示: VisitListDelegate = [[VisitsMainPageDelegate alloc] init]; [self.iboVisitsTableView setDelegate:self.VisitListDelegate]; [self.iboVisitsTableView setDataSource:self.VisitListDelegate]; LocalVisits * LV = [[LocalVisits alloc] init]; // datasource VisitListDelegate.visits = [LV getLocalVisits]; 我不知道如何從委託類返回到視圖控制器的引用。 – CocoaEv 2012-04-08 07:11:57