2

次のデリゲートにリンクされたA->B->Cコントローラーがあります:

@protocol ViewControllerDelegate <NSObject>

- (void)onResult:(ControllerDelegateObject *)delegateObject;

@end

およびCI呼び出し:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    ControllerDelegateObject *object = [[ControllerDelegateObject alloc]init];
    object.model = indexPath.row;
    [delegate onResult:object];
    [ self.navigationController popViewControllerAnimated:YES ];
}

私がBに入るより:

-(void)onResult:(ControllerDelegateObject *)delegateObject{
    delegateObject.brand = self.chosenBrand;
    [delegate onResult:delegateObject];
    [ self.navigationController popViewControllerAnimated:YES ]; **//doesn't work**
     NSLog(@"TEST2");
}

デリゲートコールバックで[self.navigationControllerpopViewControllerAnimated:YES]が2回呼び出されないのはなぜですか?

4

1 に答える 1

1

Aに行きたい場合:

popToRootViewControllerAnimated:

または、3つ以上のビューコントローラA-> B-> C-> Dがあり、DからBに移動する場合は別の選択肢です。

- popToViewController:animated:

UINavigationControllerクラスリファレンスを参照してください

于 2012-11-25T13:39:30.803 に答える