認識されないセレクタの問題の意味を知っています。これは常に、実装されていないか見つからないメソッドを呼び出すことが原因です。セレクターを実装しましたが、それも見ることができます。
それでもこのエラーが発生します。MFSlideMenuコントロールを使用しています。
ユーザーがサインアウトして再度サインインするまで、私にとってはうまく機能します。サインイン後、ユーザーがナビゲーション バーの項目をクリックすると、次のように言ってアプリがクラッシュします。
[__NSCFType gestureRecognizer:shouldReceiveTouch:]: unrecognized selector sent to instance 0xc882da0
私はAppDelegate
このようにルートコントローラーを設定しています:
LeftMenuViewController *leftSideMenuController = [[LeftMenuViewController alloc] init];
RightMenuViewController *rightSideMenuController = [[RightMenuViewController alloc] init];
MFSideMenuContainerViewController *container = [MFSideMenuContainerViewController
containerWithCenterViewController:self.meNavigationController
leftMenuViewController:leftSideMenuController
rightMenuViewController:rightSideMenuController];
[[self.meNavigationController.viewControllers lastObject] viewDidLoad];
self.window.rootViewController = container;
[self.window makeKeyAndVisible];
次に、私のメソッドでこのコントロールに従ってviewController
設定しています。navBarItems
viewDidLoad
ここで私は設定していますnavBarItems
:
#pragma mark - UIBarButtonItems
- (void)setupMenuBarButtonItems {
self.navigationItem.rightBarButtonItem = [self rightMenuBarButtonItem];
if(self.menuContainerViewController.menuState == MFSideMenuStateClosed &&
![[self.navigationController.viewControllers objectAtIndex:0] isEqual:self]) {
self.navigationItem.leftBarButtonItem = [self backBarButtonItem];
} else {
self.navigationItem.leftBarButtonItem = [self leftMenuBarButtonItem];
}
}
- (UIBarButtonItem *)leftMenuBarButtonItem {
return [[UIBarButtonItem alloc]
initWithImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"reveal-icon.png" ofType:nil]] style:UIBarButtonItemStyleBordered
target:self
action:@selector(leftSideMenuButtonPressed:)];
}
- (UIBarButtonItem *)rightMenuBarButtonItem {
return [[UIBarButtonItem alloc]
initWithImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"reveal-icon.png" ofType:nil]] style:UIBarButtonItemStyleBordered
target:self
action:@selector(rightSideMenuButtonPressed:)];
}
- (UIBarButtonItem *)backBarButtonItem {
return [[UIBarButtonItem alloc] initWithTitle:BACK_BUTTON_NAVIGATION_BAR_BUTTON_STRING style:UIBarButtonItemStylePlain target:nil action:nil];
}
#pragma mark - UIBarButtonItem Callbacks
- (void)backButtonPressed:(id)sender {
[self.navigationController popViewControllerAnimated:YES];
}
- (void)leftSideMenuButtonPressed:(id)sender {
[self.menuContainerViewController toggleLeftSideMenuCompletion:^{
[self setupMenuBarButtonItems];
}];
}
- (void)rightSideMenuButtonPressed:(id)sender {
[self.menuContainerViewController toggleRightSideMenuCompletion:^{
[self setupMenuBarButtonItems];
}];
}