我在名为" Remotecontroller"的控制器中有一个按钮动作功能。这是方法:
-(IBAction)startDiscover:(id)sender{.....}
我有另一个名为" iptvViewcontroller"的控制器。我需要在这个" iptvViewcontroller"中调用上面的方法。当按下按钮时。这是我的按钮点击功能:
btnRefresh3 = [UIButton buttonWithType:UIButtonTypeCustom];
btnRefresh3.frame = CGRectMake(0, 0, 25, 20);
[btnRefresh3 addTarget:self action:@selector(startDiscover:)
[arrLeftBarItems addObject:barButtonItem3];
请有人帮助我让它发挥作用。
答案 0 :(得分:1)
通过创建和使用自定义委托,您可以实现该功能。
Objective-C委托是一个已分配给委托属性另一个对象的对象。
有关详细信息以及如何创建和使用自定义委托,请参阅以下链接。
答案 1 :(得分:0)
在Remotecontroller.m
中,在viewDidLoad
:
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(startDiscover) name:@"discover" object:nil];
在Remotecontroller.m
中-(void)startDiscover
{
/////Your Code
}
在iptvViewcontroller.m
中[btnRefresh3 addTarget:self action:@selector(startDiscoverFromRemoteController);
-(void)startDiscoverFromRemoteController
{
[[NSNotificationCenter defaultCenter]postNotificationName:@"discover" object:nil];
}
答案 2 :(得分:0)
要将一个方法调用到另一个类,您必须在Remotecontroller.h文件中编写方法
#import "Remotecontroller.h"
然后你的remotecontroller类导入.h文件中的iptvViewcontroller类,就像这样
viewdidload()
现在使用该方法你必须在iptvViewcontroller.h文件Remotecontroller *remote;
方法中的iptvViewcontroller类中创建和分配remotecontroller类的init对象
remote = [Remotecontroller alloc]init];
在iptvViewcontroller.m文件中
[remote startDiscover:parameter];
现在您可以在整个班级中使用您的方法
public class LocalService extends Service {
// Binder given to clients
private final IBinder mBinder = new LocalBinder();
// Random number generator
private final Random mGenerator = new Random();
/**
* Class used for the client Binder. Because we know this service always
* runs in the same process as its clients, we don't need to deal with IPC.
*/
public class LocalBinder extends Binder {
LocalService getService() {
// Return this instance of LocalService so clients can call public methods
return LocalService.this;
}
}
@Override
public IBinder onBind(Intent intent) {
return mBinder;
}
/** method for clients */
public int getRandomNumber() {
return mGenerator.nextInt(100);
}