我有RouteSelectController我从中导航到RouteInfoController。自定义协议的方法是不是在iPhone调用sdk
-(void)GoToRouteInfo
{
RouteInfoController *controller = [[RouteInfoController alloc] initWithNibName:@"RouteInfoController" bundle:nil];
controller.delegate = self;
[self.navigationController pushViewController:controller animated:YES];
[controller release];
}
在RouteInfoController.h我创造了我定制的协议一样
#import <UIKit/UIKit.h>
@protocol RouteInfoDelegate;
@interface RouteInfoController : UIViewController<UITableViewDelegate, UITableViewDataSource, WptInfoDelegate>
{
id<RouteInfoDelegate> delegate;
}
@property (nonatomic, assign) id delegate
@end
@protocol RouteInfoDelegate
- (void) deleteWptFromRouteAndAppWithUID;
@end
在RouteInfoController.m我称这种委托方法,如:
#import "MapViewController.h"
@class MapViewController;
@implementation RouteInfoController
@synthesize delegate;
-(void)callRouteDelegateMethod
{
[self.delegate deleteWptFromRouteAndAppWithUID];
}
而且这种方法的定义在MapViewController.m中是这样的:
#import "RouteInfoController.h"
@interface MapViewController() <UIScrollViewDelegate,RouteInfoDelegate>
{
//.....................................
}
-(void) deleteWptFromRouteAndAppWithUID // The problem here is this delegate method is not called
{
NSLog(@"\n Inside delete Way point...");
}
编辑:当控制达到该委托方法
- (无效)callRouteDelegateMethod
在RouteInfoController我在我的控制台得到一个崩溃的消息,如:
[RouteSelectController deleteWptFromRouteAndAppWithUID]:无法识别 选择器发送到实例0x6eb4eb0
EDIT2:
在RootInfoController我有上didselect表中的任意单元格的方法查看它调用此方法
- (void) viewWptInfoControllerAtIndex: (int)index{
WptInfoViewController *controller = [[WptInfoViewController alloc] initWithNibName:@"WptInfoViewController" bundle:nil];
controller.asRootController = NO;
controller.delegate = self;
NSMutableDictionary *dict = [route.routeWaypoints objectAtIndex:index];
NPLibWaypoint *libWpt = [NPLibWaypoint initWithDictionary:dict AndDelegateDS:delegateDS];
controller.libWpt = libWpt;
[libWpt release];
controller.isFromRouteInfo = YES;
[self.navigationController pushViewController:controller animated:YES];
[controller release];
}
盖伊的CPL的人建议我如何解决这一点,什么是错的我做了。
任何人的帮助深受赞赏。
谢谢大家, Monish。
“RouteSelectController”来自哪里?我以为你想使用MapViewController作为你的委托..也许你设置委托错了? – 2012-03-10 09:28:46
Thats wt我很困惑y RouteSelectorController进来之间。我做了同样的事,因为我发布了这个问题的代码。 – 2012-03-10 09:41:46
请向我们展示您设置委托对象的代码 – 2012-03-10 10:20:46