我有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