さて、私はこれを数時間続けており、連絡を取る時が来たと考えました。初めて、1つのストーリーボードで複数のテーブルビュー(2)を操作しています。独自のビューコントローラー(メインビューコントローラー)を使用してストーリーボードをセットアップします。共通パターンとしてメインビューコントローラーに委任した最初のテーブル。2番目のテーブルビューでは、デリゲートとして別のクラスを設定し、テーブルビューとデータソースに委任します。
見た目は良く、各テーブルビューは正しいデータをロードして表示します。これまでのところすべて良好です。
これが2番目のテーブルビューの摩擦です-外部から委任されたもので、次の方法で行が選択されたときにアクションを実行します:-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath blah、blah、何とか。
必要なアクションは、「メインビューコントローラー」に接続されている新しいビューコントローラーへのセグエを開始することです。メインビューコントローラーに、セグエアクションを実行するセレクターがあります(それ以外の場合は機能します)
デリゲートからメインビューコントローラーへの接続を確立する方法がわからないため、正しいセレクターを呼び出して、セグエを開始できます。通常、セグエの間では、segue.parent ..segue.destination....などを使用します。この状況では機能しません。セグエがデリゲートに接続されていないため、デリゲートクラスからセグエできません。
私はこのアプローチを試しましたが、機能しません:StartViewController:
VisitListDelegate = [[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
VisitsMainPageDelegateというデリゲートクラス
#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"];
エラーは発生しませんが、機能しません。
これを解決するための助けをいただければ幸いです。
ありがとう!