我有我的自定義委託類UINavigationController
。如何調用委託方法作爲相同委託類中的選擇器
目前我面臨的問題在我的UIBarButtonItems
。
我必須爲每個BarItem定義@Selector
。
到目前爲止 我對這樣的每個欄項目定義選擇:
SEL selector = (menu == MyMenu) ? @selector(leftSelected:) : @selector(rightSelected:);
,因爲他們是當地的方法在我的委託類,所以沒有問題正在完善。
但有一點我需要聲明我的委託方法爲@Selector,因爲它在其他視圖控制器中定義。
這裏我必須將我的委託方法定義爲選擇器。
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");
}
我想使用此箭頭MenuSelectedOut方法作爲選擇器從按鈕按下相同的委託類。
你有什麼問題?目前還不清楚你使用'@ selector'有什麼問題? – rmaddy
問題是,我無法創建委託方法的@selector,因爲我定義,如果我以上述方式定義它不是調用 –
仍然不清楚。更新你的問題清楚地顯示你如何實際創建和實際使用選擇器。還包括任何其他細節,如錯誤。 – rmaddy