我目前正在这样做,在我的导航栏上添加一个按钮来调用SwitchViews方法。
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back to App"
style:UIBarButtonItemStyleBordered
target:nil
action:@selector(switchViews:)];
self.navigationItem.leftBarButtonItem=backButton;
[backButton release];
这个方法碰巧在另一个类(SwitchViewController)中,但它正在工作,因为我猜方法调用通过响应程序链,直到它在SwitchViewController中找到它。
有什么方法可以将目标设置为我的班级而不是nil?
猜测这将使代码更易于阅读,调试和维护。
我确信这对一些比我更有经验的程序员来说是一个简单的答案......
由于
答案 0 :(得分:0)
从理论上讲,将 设定目标显然会导致响应者链中发送的操作。不知道那个。 target
设置为nil
根本不起作用,但也许正如你所说,它可以用它做一些聪明的东西。
要将其设置为您的班级,首先需要对该班级的引用。谁拥有那堂课?申请代表?应用程序是否可以将该类的引用委托给此类,因为它需要它?如果以编程方式初始化此类,您甚至可以调整init
方法以获取新参数(该类)。
上面包含上述代码片段的方法是什么样的?它是一个init方法吗?一个viewDidLoad方法?
如果它是一个init方法并且它是从NIB文件中调用的(即它是initWithCoder:
)那么你最好的选择就是直接从应用程序代理中获取引用,使用
((YOURAPPDELEGATE *)[[UIApplication sharedApplication] delegate]).THATCLASS
以上假设您已为@property
(您想要的THATCLASS
)正确设置了target
,例如
@property (nonatomic, retain) ExampleClass *THATCLASS;