UIViewController
aと aの 2 つのビュー コントローラーがありUITableViewController
ます。
そして、どちらもbarButtonItems
完了ボタンと設定ボタンに同じコードを必要とします。メソッド セレクターと で同じコードを使用するのは見苦しいと思いますが、2 つのコントローラーで同じコードをviewDidLoad
使用する他の方法は考えられません。barButtonItems
共有コードは次のようになります。
- (void)dismissViewController { [self.navigationController dismissViewControllerAnimated:YES completion:nil]; }
- (void)done:(UIBarButtonItem *)sender { [self dismissViewController]; }
- (void)settings:(UIBarButtonItem *)sender { [self performSegueWithIdentifier:SETTINGS_SEGUE sender:sender]; }
- (void)viewDidLoad {
[super viewDidLoad];
if (self.navigationController.viewControllers.count == 1)
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Settings" style:UIBarButtonItemStyleBordered target:self action:@selector(settings:)];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(done:)];
}
アーキテクチャ的に、私のコードは次のようになります。
UITabBarController -view controllers->
UINavigationController -root view controller-> UIViewController
UINavigationController -root view controller-> UITableViewController
との間でコードを共有する方法はUIViewController
ありUITableViewController
ますか? ありがとう :)