-3

ItemsView xib を表示するナビゲーション コントローラーが読み込まれるポップオーバーがあり、デリゲート メソッドがあるため、このポップオーバーをメイン ビュー コントローラーから閉じることができます。これは、UITableView (詳細ビューをロードする) の次のレベルにドリルダウンするまでは、問題なく機能します。詳細ビューが読み込まれると、メイン ビュー コントローラーで Dismiss メソッドを呼び出すことができません。私は代表者にとってまったく新しいものであり、ガイダンスをいただければ幸いです。ありがとうございました!

MainView ---> ItemsView ---> DetailView

DetailView から MainView にあるデリゲート メソッドを呼び出す方法は?

//Load the popover with first view:

    ItemsView *popoverView = [[ItemsView alloc] init];

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:popoverView];

self.popOverController = [[[UIPopoverController alloc] initWithContentViewController:navController] autorelease];

popoverView.delegate = self;

[navController release];

[popOverController setPopoverContentSize:CGSizeMake(450.0, 300.0)];
[popOverController presentPopoverFromRect:addButton.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];

[popoverView release];

次に、詳細ビューをプッシュします。

//Push DetailView

    if(self.secondView == nil) {

    NSLog(@"Called");

    AddDetail *viewController = [[AddDetail alloc] initWithNibName:@"AddDetail" bundle:nil];

    self.secondView = viewController;

    [viewController release];

}

// Setup the animation

secondView.contentSizeForViewInPopover = self.view.bounds.size;
self.contentSizeForViewInPopover = self.view.bounds.size;

[self.navigationController pushViewController:self.secondView animated:YES];


}
4

1 に答える 1

2

以下のようにDetailビューにプロパティとメソッドを記述します。

  • ID myParent としてのプロパティ
  • (void)setParent:parent { myParent = 親;} としてのメソッド

detailviewcontroller を押しながら、このメソッドを as として呼び出します。

  • [detailViewcontroller setParent:self];

これで、Parent で宣言されたメソッドを次のように呼び出すことができます。

  • [myParent yourMethodName];

お役に立てれば

于 2011-04-12T09:46:34.573 に答える