나는 selector as parameter in IOS 게시물을 읽었습니다. 그러나 나는 그 질문을 연장하고자한다. 내 경우 IOS의 선택기로서 다른 객체의 기능을 어떻게 pas 할 수 있습니까?
, 내가 목표 -C (스위프트되지 않음) 마스터/상세 애플리케이션을 작성하고 다음 init 함수DetailViewController.h에서
와 형의 UIViewController의 DetailController 객체를 생성 할거야- (id)initWithNibName:(NSString *)nibName withSaveSelector:(SEL)saveSelector
{
self = [super initWithNibName:nibName bundle:nil];
if (self) {
UIBarButtonItem *done = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemDone
target:self
action:saveSelector];
[[self navigationItem] setRightBarButtonItem:done animated:YES];
}
return self;
}
지금, 난 그냥 다른 DetailViewController를 만드는 코드 위에 다시 계속 사용하려면 ... 그리고 DetailViewController.m에
@interfact DetailViewController : UIViewController
- (id)initWithNibName:(NSString *)nibName withSaveSelector:(SEL)saveSelector
@end
사용자가 "완료"버튼을 누를 때 호출 될 saveSelector 함수를 전달하려고합니다.
는 지금은 다른 뷰 컨트롤러
@interface AnotherViewController : UIViewController
- (void)saveSelector:(id)sender;
@end
을 가지고 ... 그리고 또 다른 목적 (즉, 은하지 AnotherViewController.m 코드에서) 내가 지금처럼, 위의 뷰 컨트롤러를 사용에 .. .
AnotherViewController *avc = [[AnotherViewController alloc] init];
DetailViewController *dvc = [[DetailViewController alloc] initWithNibName:@"AnotherViewController" withSaveSelector:@selector(???)];
무엇을 넣어야합니까? 그래서 AnotherViewController :: saveSelector() 함수를 DetailViewController에 전달할 수 있습니까?
나는 그것이 의미가 있기를 바랍니다.