UIViewController
의 하위 클래스 인이 클래스 (FooViewController
)를 사용합니다. rootController
이 있다는 점에서 UINavigationController
과 유사하게 작동하며 다른 UIViewController
을 추가 할 수 있습니다. 그리고 각각 UIViewController
내에서 FooViewController
은 또 다른 UIViewController
을 생성하고 그 새로운 UIViewController
을 FooViewController
으로 푸시 할 수 있습니다.모든 UIViewController에 변수 추가
다음은 내가 말하는 의미의 예입니다. 새 UITableViewController
을 프로젝트에 추가하면이 코드가 자동 생성됩니다.
DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"Nib name" bundle:nil];
// ...
// Pass the selected object to the new view controller.
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];
여기에 질문입니다 : 어떻게 UIViewController
의 모든에 navigationController
같은 변수를 가질 수있다? 범주를 사용하여 기존 클래스에 메서드를 추가 할 수있는 것처럼 기존 클래스에도 변수를 추가 할 수 있습니까? Associative References이 내가 찾고있는 것 같지만 Mac에서만 사용할 수 있습니다.
나를 위해 작동 할 수있는 한 가지 해결책은 내가 사용할 수있는 UIViewController
을 모두 서브 클래스 화하고 실제 클래스를 하위 클래스로 서브 클래 싱하는 것입니다. 예를 들어 다음과 같이 할 수 있습니다.
@interface FooUIViewController : UIViewController {
FooViewController *fooViewController;
}
@interface FooUITableViewController : UITableViewController {
FooViewController *fooViewController;
}
이렇게 할 수있는 것은 : [self.fooViewController pushViewController:detailViewController];
입니다. 그러나 이것은 이것을하는 더러운 방법처럼 보입니다.
나는 이것이 어려운 일이 아니어야하고 어쩌면 내가 잘못 생각하고 있다고 생각합니다. 이견있는 사람? 감사!
응용 프로그램 대리인을 사용해 주셔서 감사합니다. 대신 싱글 톤을 사용하고 있으며 솔루션에 만족하지는 않지만이 프로젝트에서 작동합니다. 감사! – donkim