私はUINavigationController
のカスタムデリゲートクラスを持っています。デリゲートメソッドを同じデリゲートクラスのセレクタとして呼び出す方法
現在、私はUIBarButtonItems
に問題があります。
各BarItemに対して@Selector
を定義する必要があります。
これまで 私はこのような各バー項目のセレクタを定義します。
SEL selector = (menu == MyMenu) ? @selector(leftSelected:) : @selector(rightSelected:);
問題がないので、彼らは私の委譲クラスでローカルメソッドであるため、インクルードが完璧な作業しています。
しかし、1点私は@Selectorとして私の代理メソッドを宣言する必要があるので、他のviewcontrollerのその定義。
ここでは、セレクタとしてデリゲートメソッドを定義する必要があります。
SEL selector = (menu == MenuLeft) ? @selector(leftMenuSelected:) : @selector(righttMenuSelected:);
if (menu == MenuTwo) {
selector = @selector(arrowMenuSelectedOut);
}
if (menu == MenuTwo){
UIImage *image = [UIImage imageNamed:MENU_ARROW];
UIBarButtonItem *btn= [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStyleDone target:self action:selector];
btn.imageInsets = UIEdgeInsetsMake(0, 0, 0, -25.0);
return btn;
}
else
{
UIImage *image = [UIImage imageNamed:MENU_IMAGE];
return [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:selector];
}
これは私の委任方法です。
@protocol myNavigationViewControllerDeleget<NSObject>
- (void)arrowMenuSelectedOut;
@end
他のビューコントローラに配置されています。
- (void)arrowMenuSelectedOut
{
NSLog(@"button press");
}
ボタンの押下時に同じdelegateクラスのselectorとしてこのarrowMenuSelectedOutメソッドを使用したいと思います。
あなたはどんな問題を抱えていますか? '@ selector 'を使ってどのような問題が起きているのかははっきりしません。 – rmaddy
の問題は、上記の方法で定義した場合に@deflectorをデリゲートメソッドとして作成することができないことです。 –
まだ明確ではありません。セレクタを実際にどのように作成し、実際に使用しているかを明確に示す質問を更新してください。また、エラーなどの追加の詳細も含めます。 – rmaddy