- (. question) , (. 2 ), , , , , .
typedef enum {
ViewControllerPushControllerNone,
ViewControllerPushControllerSettings,
ViewControllerPushControllerWhatever
} ViewControllerPushController;
@interface ViewController : UIViewController {
ViewControllerPushController _pushController;
}
@property(nonatomic, assign) ViewControllerPushController pushController;
@end
@implementation ViewController
@synthesize pushController = _pushController;
- (void)viewDidAppear:(BOOL)animated {
switch(self.pushController){
case ViewControllerPushControllerSettings:
break;
case ViewControllerPushControllerWhatever:
break;
}
self.pushController = ViewControllerPushControllerNone;
[super viewDidAppear:animated];
}
@end
, . , , , , .
EDIT. , enum typedef. switch, - :
- (void)viewDidAppear:(BOOL)animted {
if(self.pushController != nil){
NSString *selector = [NSString stringWithFormat:@"push%@", NSStringFromClass(self.pushController)];
[self performSelector:NSSelectorFromString(selector)];
}
self.pushController = nil;
[super viewDidAppear:animated];
}
- (void)pushSettingsViewController {
if(_settingsViewController == nil){
_settingsViewController = [[SettingsViewController alloc] init];
}
[self.navigationController pushViewController:_settingsViewController animated:YES];
}