我使用委托来运行一些方法。
我收到了2位代表的webrequests:menuVC和mapVC。
当我在mapVC webrequests中完成mapVC类的委托方法时。
当我在menuVC webrequests中尝试完成mapVC类和崩溃app的委托方法时。
webrequests中的方法没有帮助
if ([self.delegate isKindOfClass: [MenuViewController class]])
{
self.delegate = [MapViewController class];
}
为什么会这样?
我在两个班级中使用
self.webRequests = [WebRequests sharedInstance];
self.webRequests.delegate = self;
答案 0 :(得分:2)
原始答案:
您一次只能拥有一个对象的一个委托,除非该对象被设计为允许不同的委托协议(例如,UITableView同时具有“delegate
”和“datasource
”) 。
您还无法将您的委托设置为非实例化对象,就像您在此行上所做的那样:
self.delegate = [MapViewController class];
这需要是一个实际分配和实例化的对象。
与您刚刚推送或创建的“self.mapViewController
”类似。
对于这个问题,您可能需要更好地解释您最终要做的事情,因为看起来您当前的委托是一个MenuViewController对象,并且您正在尝试将委托切换到MapViewController对象。
新答案:
由于你希望在两个不同的视图控制器中发生事情,所以做你想做的最好的方法是使用“NSNotification
”(允许多个对象观察或观察)发生)。
Here is a tutorial you can look at, to get a good start with it