2012-07-31 79 views
-1

我試圖從一個視圖控制器對象傳遞到另一個,但它給出了一個錯誤,是NSInvalidArgumentException錯誤

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[MapViewController setTMode:]: unrecognized selector sent to instance 0x866ed70' 
*** First throw call stack: 
(0x250b022 0x2709cd6 0x250ccbd 0x2471ed0 0x2471cb2 0x28044 0x250ce99 0x155c14e 0x155c0e6 0x1602ade 0x1602fa7 0x1602266 0x15813c0 0x15815e6 0x1567dc4 0x155b634 0x2c0bef5 0x24df195 0x2443ff2 0x24428da 0x2441d84 0x2441c9b 0x2c0a7d8 0x2c0a88a 0x1559626 0x261d 0x2595) 
terminate called throwing an exception 

我的.h文件的方法是

@interface TransportViewController : UIViewController<UITextFieldDelegate> 
{ 
    MapViewController *modeData; 
    MapViewController *walkDistData; 
    MapViewController *routeOptData; 
    IBOutlet UITextField *tbMode; 
    IBOutlet UITextField *tbWalkDist; 
    IBOutlet UITextField *tbRouteOpt; 
    IBOutlet UIPickerView *pickerView; 
    NSMutableArray *modeArray; 
    UITextField *activeField; 
    IBOutlet UIButton *back; 
}  

@property (retain, nonatomic) MapViewController *modeData; 
@property (retain, nonatomic) MapViewController *walkDistData; 
@property (retain, nonatomic) MapViewController *routeOptData; 
@property (retain, nonatomic) IBOutlet UITextField *tbMode; 
@property (retain, nonatomic) IBOutlet UITextField *tbWalkDist; 
@property (retain, nonatomic) IBOutlet UITextField *tbRouteOpt; 
@property (retain, nonatomic) IBOutlet UIButton *back; 

- (IBAction) backAction:(id)sender; 
@end 

,這是我的.m文件的方法

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    tbMode.delegate = self; 
    tbWalkDist.delegate = self; 
    tbRouteOpt.delegate = self;  
} 
- (IBAction) backAction:(id)sender 
{ 
    MapViewController *view=[[MapViewController alloc] initWithNibName:nil bundle:nil]; 
    self.modeData = view; 
    self.walkDistData = view; 
    self.routeOptData = view; 
    // NSLog(@"%@", modeData); // this is where i test all the NSLog at 
    modeData.tMode = tbMode.text; 
    NSString *str = [tbWalkDist text]; 
    walkDistData.tWalkDist = [str intValue]; 
    routeOptData.tRouteOpt = tbRouteOpt.text; 
    [self presentModalViewController:view animated:NO]; 

} 

錯誤在這些行中被捕獲

modeData.tMode = tbMode.text; 
NSString *str = [tbWalkDist text]; 
walkDistData.tWalkDist = [str intValue]; 
routeOptData.tRouteOpt = tbRouteOpt.text; 

我把NSLog(@"%@", modeData);檢查值,則返回<MapViewController: 0x84627a0>

NSLog(@"%@", tbMode.text);還給我的價值觀A這正是我需要的。

*錯誤與modeData.tMode & walkDistData.tWalkDist & routeOptData.tRouteOpt

我做了什麼錯?請幫忙 。我似乎無法弄清楚這一個

我的.h

@interface MapViewController : UIViewController 
{ 
    NSString *tMode; 
    NSString *tRouteOpt; 
    int tWalkDist; 
} 
@property(nonatomic, retain)NSString *tMode; 
@property(nonatomic, retain)NSString *tRouteOpt; 
@property(nonatomic)int tWalkDist; 
+3

我認爲錯誤是,這line - 'modeData.tMode = tbMode.text;' - should be this:'modeData.tbMode = tbMode.text;'因爲我沒有看到任何聲明'tMode'的屬性。 – pasawaya 2012-07-31 03:07:00

+0

對於我在傳遞數據的秒視圖控制器中聲明的tMode。它是'NSString * tMode; NSString * tRouteOpt; int tWalkDist;' – sihao 2012-07-31 03:10:34

+0

但是您是否將它們聲明爲屬性? – pasawaya 2012-07-31 03:11:13

回答

1

您需要合成tMode財產MapViewController.m秒視圖控制器:

@implementation MapViewController 

@synthesize tMode; 

... 
相關問題