Iを以下に示すCustomer.hファイル内のプロトコルを定義している渡す値は、
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
Customer *selectedCustomer = [customers objectAtIndex:[indexPath row]];
[self.delegate didSelectCustomer:selectedCustomer];
}
ここで、DetailViewController(右側)に何かをさせる必要があります。 DetailViewControllerは、CustomerDelegateプロトコルに準拠しています。
@interface DetailViewController : UIViewController<UISplitViewControllerDelegate,CustomerDelegate>
{
}
-(void) didSelectCustomer:(Customer *)customer
{
NSLog(@"sssdasdasdasd");
}
didSelectCustomerメソッドは呼び出されません。私はmasterViewController.delegate = selfを設定する必要があると思うが、私はこのことをどこに設定するか分からない。
UPDATE 1:私はDetailViewController内部MasterViewControllerのインスタンスを追加しましたが、それはうまくいきませんでした
:
- (void)viewDidLoad
{
[super viewDidLoad];
MasterViewController *master = [[MasterViewController alloc] init];
master.delegate = self;
}
SOLUTION:AppDelegateで
:
else
{
UISplitViewController *splitViewController = (UISplitViewController *) self.window.rootViewController;
splitViewController.delegate = [splitViewController.viewControllers lastObject];
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
// splitViewController.delegate = (id)navigationController.topViewController;
DetailViewController *detail =(DetailViewController *) [splitViewController.viewControllers lastObject];
UINavigationController *masterNavigationController = [splitViewController.viewControllers objectAtIndex:0];
MasterViewController *master = (MasterViewController *)masterNavigationController.topViewController;
master.delegate = detail;
}
問題を修正しましたか?これは私の脳を食べる。修正プログラムが見つかった場合はお知らせください。 – GenieWanted