gpt4 book ai didi

ios - 如何在同一委托(delegate)类中将委托(delegate)方法作为选择器调用

转载 作者:可可西里 更新时间:2023-11-01 05:32:55 24 4
gpt4 key购买 nike

我有用于 UINavigationController 的自定义委托(delegate)类。

目前我的 UIBarButtonItems 遇到问题。

我必须为每个 BarItem 定义 @Selector

到目前为止我像这样为每个栏项定义选择器:

SEL selector = (menu == MyMenu) ? @selector(leftSelected:) : @selector(rightSelected:);

它们工作完美,因为它们是我的委托(delegate)类中的本地方法,所以没有问题。

但有一点我需要将我的委托(delegate)方法声明为@Selector,因为它在其他 View Controller 中定义。

在这里我必须将我的委托(delegate)方法定义为选择器。

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];
}

这是我的委托(delegate)方法。

@protocol myNavigationViewControllerDeleget<NSObject>
- (void)arrowMenuSelectedOut;
@end

放置在其他viewcontroller中。

  - (void)arrowMenuSelectedOut
{

NSLog(@"button press");

}

我想在按下按钮时将此 arrowMenuSelectedOut 方法用作来自同一委托(delegate)类的选择器。

最佳答案

如果你想调用委托(delegate),试试这个。

[self.mydelegate arrowMenuSelectedOut];

或者在你的情况下

UIBarButtonItem *btn = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStyleDone target:self.mydelegate action:@selector(arrowMenuSelectedOut)];

还要检查你是否正确定义了你的委托(delegate),它不应该是零。试试这个

self.mydelegate=self;

关于ios - 如何在同一委托(delegate)类中将委托(delegate)方法作为选择器调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40494160/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com