2010-12-08 14 views
0

ボタンを押したときに次のビューを読み込めません。私はボタンを作成し、IBのボタンにcheckButtonPressアクションをアタッチしました。しかし、私がシミュレータのボタンを押すと、次のビュー(ViewOne.xib)が読み込まれません。私はコードをデバッグしようとしました。 NSLog(@ "View One")が表示されます。これはコードがそのポイントに到達していて、次のビューがロードされていないことを意味するif文で書かれています。私はすでにViewOneの.h、.m .xibファイルを作成しています。コードは、エラーや警告がなく細かい実行されているボタンを押して画面を読み込めません。

#import "check1ViewController.h" 
#import "ViewOne.h" 

@implementation check1ViewController 

-(IBAction) checkButtonPress: (id) sender{ 
    int button = [sender tag]; 

if(button==1) 
{ 
    NSLog(@"View One"); 
    ViewOne *tempObj = [[ViewOne alloc]initWithNibName:@"ViewOne" bundle:nil]; 
    [self.navigationController pushViewController:tempObj animated:YES]; 
    [tempObj release]; 


} 
else if(button==2) 
{ 
    NSLog(@"View Two"); 
} 
    } 

/* 
// The designated initializer. Override to perform setup that is required before the  view is loaded. 
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) { 
     // Custom initialization 
    } 
    return self; 
} 
*/ 

/* 
// Implement loadView to create a view hierarchy programmatically, without using a nib. 
- (void)loadView { 
    } 
*/ 


/* 
// Implement viewDidLoad to do additional setup after loading the view, typically from a  nib. 
- (void)viewDidLoad { 
    [super viewDidLoad]; 
} 
*/ 



- (void)dealloc { 
    [super dealloc]; 
} 

@end 

次はcheck1ViewController.m実装ファイルで記述されたコードです。

任意の提案私はIBまたは書き込まれるか、ファイルのいずれかで任意のメソッドをオーバーライドする必要がありますコード内のどの部分が欠落しています...または私は他の方法

前IBActionを紛失した場合申し訳ありませんが、私はiPhoneデベロッパにとって初めてのので、何が間違っているのか分かりません。事前に

おかげで

+1

ナビゲーションコントローラは正しく設定されていますか?その場所にnilでないかどうかを確認してください – Vladimir

+0

プロジェクトの作成中にウィンドウベースのテンプレートを選択しましたが、前述の - (IBAction)checkButtonPressメソッドが、次のビューをロードするために書き込まれた唯一のコードです。申し訳ありません...ちょうど私が何かが不足していると思います – Prazi

答えて

0

あなたのアプリケーションは、ナビゲーションコントローラは、そのAppDelegateクラスのこのメイクオブジェクトのためのウィンドウに次のビューを追加しaddViewにウィンドウにアクセス持っていません。

YourAppDelegate *obj=(YourAppDelegate *)[[UIApplication sharedApplication] delegate]; 

[obj.window addSubView:viewController.view]; 
+0

あなたのクイック返信ありがとう。しかし、...申し訳ありませんが、私はまだiPhoneアプリ開発者の初心者ですので、あなたが説明しようとしているものは得られませんでした。可能であれば、2つのビューを持つ簡単なアプリケーションコードを記述してください。アプリケーションが起動するとメインビューが読み込まれ、メインビューにボタンが1つ表示されます。ボタンを押すと、次のビューがロードされます。ウィンドウベースのテンプレートプロジェクトでこのアプリケーションを作成し、Interface Builderを使用する方法と、次のビューを読み込むためにIBの各.xibファイルでどのような接続を行うかをお勧めします...ありがとうございました – Prazi

+0

アプリケーションはウィンドウベースです。あなたが使用できないナビゲーションコントローラを持っていません[self.navigationController pushViewController:tempObj animated:YES]; このline.okしかし、この目的のためにあなたのビューをウィンドウに追加することができますので、他のビューを表示する必要があります。さて、デフォルトでは、windowはappDelegateクラスのプロパティです。なぜあなたはappDelegateクラス(window)のプロパティにアクセスして、window.soにあなたのビューを追加する必要があるのですか? .mクラスのimport appDelegate.hファイルにもあります。これを試してみてください。 – Ishu

+0

ypur replyに感謝します。とった。この問題は、次のコードで上記のコードを置き換えることによりソートされ:(ボタン== 1)(「ビュー1」@) \t {\t \tのNSLog場合 \t。\t \t ViewOne * tempObj = [[ViewOne alloc] initWithNibName:nil bundle:nil]; \t \t [self presentModalViewController:tempObj animated:YES];} presentModelViewControllerの使い方と、それがどのように機能し、いつ使用するかについて説明してください。また、presentModelViewControllerとpushViewControllerの違いは何ですか?そのどちらからでもいつどのようなものを使用するかを決める方法。前もって感謝します – Prazi

関連する問題