1

これが私のコードです:

@interface RootViewController : UIViewController{

}
-(IBAction)btnDetail1_Clicked:(id)sender;
@end



@implementation RootViewController

-(IBAction)btnDetail1_Clicked:(id)sender{
    DetailViewController1 *mvcr = [[DetailViewController1 alloc] initWithNibName:@"DetailViewController1" bundle:nil];
    [mvcr setDelegate:self];
    [self.navigationController pushViewController:mvcr animated:YES];
    [mvcr release];
}
@end



@protocol NotifySubclass
@optional
-(void) serviceCall_done;
@end

@interface MasterViewController : UIViewController{
     id<NotifySubclass> delegate;
}
@property (retain) id delegate;
-(void) initCallService;
@end




@implementation MasterViewController
@synthesize delegate;

-(void) initCallService{
    "My some other code is here."
    [self performSelector:@selector(startLoading) withObject:nil afterDelay:5];
}

-(void) startLoading{
    "My some other code is here."
    [self performSelectorOnMainThread:@selector(loadComplete) withObject:nil waitUntilDone:YES];
}

-(void) loadComplete{
    "I want to call DetailViewController1's "serviceCall_done" method from here.
     [delegate serviceCall_done];
}
@end



@interface DetailViewController1 : MasterViewController <NotifySubclass>{

}
@end




@implementation DetailViewController1
- (void)viewDidLoad{
    [self initCallService];
}

-(void) serviceCall_done{

}
@end

DetailViewController1serviceCall_doneメソッドからのloadCompeteメソッドを呼び出したいMasterViewController

DetailViewController1プロトコルを作成しようとしましたが、から呼び出しているプロトコルを正確に記述しなければならない場所がわかりませんでしたRootViewController

誰かがこれについて私を導くことができますか?

4

2 に答える 2

2

メソッドを追加MasterViewController

-(void) serviceCall_done{
    //in this method you do nothing.
}

変更

-(void) loadComplete{
    [self serviceCall_done];
}

そして、DetailViewController1このメソッドをオーバーライドしますserviceCall_done

-(void) serviceCall_done{
    //Add code
}
于 2013-03-22T09:14:26.990 に答える
0

この投稿通知に NSNotificationCenter を使用し、3 つの詳細クラスすべてにオブザーバーを追加できます。NSNotificationCenter に関するチュートリアルを読んでください。

ここにいくつかのチュートリアルがあります

チュートリアル 1

チュートリアル 2

チュートリアル 3

于 2013-03-22T09:06:24.427 に答える