2012-01-23 10 views
0

ビュー間で遷移する際に問題が発生しています。これは幾分納得しているので、私と一緒に抱きしめてください。Objective-Cビュー間の遷移中に発生する問題

私はJobsNavControllerと呼ばれるUINavigationControllerを持っています。 JobsNavControllerの最初のビューにはJobsTableViewControllerというUITableViewController [JobTableView.xibというリンク付きペン先が付いています。私は012BUIButtonをUINavControllerの中に追加して、新しいジョブを作成したいと思っています。クリックするとJobTableView.xibからJobCreateView.xibというJobCreateViewControllerペン先に切り替わります。 「追加」ボタンはUINavController内に配置されているので、私はJobsNavController.h and .mの中にIBActionコードを入れます。ここで

JobsNavController.h

#import <UIKit/UIKit.h> 
@class JobCreateViewController, JobsTableViewController; 

@interface JobsNavController : UINavigationController { 
    IBOutlet UIButton *btnJobCreate; 
    IBOutlet JobCreateViewController *jobCreateViewController; 
     IBOutlet JobsTableViewController *jobsTableViewController; 
} 
-(IBAction)tellDelegateToFlip:(id)sender; 

@property (nonatomic, retain) UIButton *btnJobCreate; 
@property (nonatomic, retain) IBOutlet JobCreateViewController *jobCreateViewController; 
@property (nonatomic, retain) IBOutlet JobsTableViewController *jobsTableViewController; 

@end 

されており、ここで私はすべてのビルドが届かないJobsNavController.m

#import "JobsNavController.h", "Time_Blogger1AppDelegate.h", "JobsTableViewController.h" 
@implementation JobsNavController 
@synthesize btnJobCreate, jobCreateViewController, jobsTableViewController; 
..... 
-(void)tellDelegateToFlip { 
    JobCreateViewController *jobAddView = [jobCreateViewController initWithNibName:@"JobCreateView" bundle:nil]; 

    [self setJobCreateViewController:jobAddView]; 
    [jobAddView release]; 

    UIViewController *transitionTo = jobCreateViewController; 

    //create view animation block 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:1.25]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES]; 
    [jobsTableViewController.view removeFromSuperview]; 
    [self.view insertSubview:transitionTo.view atIndex:0]; 
    [UIView commitAnimations]; 

    [transitionTo release]; 
} 

/コンパイルエラーを私ですが、シミュレータは、私が述べボタンをクリックし、例外がスローされます。

2012-01-22 19:19:22.895 Time-Blogger1[4209:f803] 
-[JobsNavController tellDelegateToFlip:]: unrecognized selector sent to instance 0x6c85e80 2012-01-22 19:19:22.897 Time-Blogger1[4209:f803] 
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 
'-[JobsNavController tellDelegateToFlip:]: unrecognized selector sent to instance 0x6c85e80' 
+0

あなたは 'tellDelegateToFlip'を呼び出すコードを追加した場合、私は私ができると思いますそれがどこでクラッシュするのかを正確に示してください。 –

+0

@Rickayそれは 'tellDelegateToFlip'のためのすべてのコードです – sadmicrowave

+0

私はあなたが*メソッドを呼び出す*コードを意味し、実装しません。 –

答えて

1

tellDelegateToFlipはパラメータなしでこれを行うことを確認します。これがクラッシュを引き起こしています。クラッシュレポートに気付いた場合、認識できないセレクタ​​がインスタンスに送信されていると表示されます。コロンがメソッド名の後に来ることに注目してください。これは、メソッドを呼び出した場所であればどこでもオブジェクトを送信したことを意味します。 performSelector:withObject:afterDelay:を使用している場合は、を入力しないでください。コロンを使用してください。

編集:

の代わりに:

JobCreateViewController* transitionTo = jobCreateViewController; 

それとも、と仮定し、それを唱えているのUIViewControllerからJobCreateViewController継承:

UIViewController* transitionTo = jobCreateViewController; 

は、なぜあなただ​​けは使用しないでください。この方法の

+0

のJobsNavController.hコードセクションのメソッドへの呼び出しを示しましたが、今度は 'UIViewController * transitionTo = ...'行で警告が表示されています。ステートメント: "'UIViewController *'型 'JobCreateViewController *'の式を初期化する互換性のないポインタ型" – sadmicrowave

+0

UIViewController型で宣言する理由が不明です。 'JobCreateViewController *'として宣言してみませんか? –

+0

私はあなたのやり方をするために使用するシンタックスラインの置換えを提供できますか? – sadmicrowave

1

間違って実装:

-(IBAction)tellDelegateToFlip:(id)sender; 

は次のようになります。あなたのJobsNavController.mで

-(IBAction)tellDelegateToFlip:(id)sender { 
... 
} 

関連する問題