2012-01-24 10 views
0

ルートコントローラでボタンをクリックした後にサブビューを呼び出そうとしています。私のAppDelegate(コードは下記)に警告が表示されますが、問題が発生した場合でもこの新しいサブビューをどのように呼び出すかについては、ルートコントローラのメソッドが含まれています。 アラートが引き続き発生するのは、navControllerのローカル宣言がインスタンス変数を隠すことです。ここ
私は(罰金開くために使用)アプリケーションを起動すると、それは今単純に出て...新しいビューを呼び出す:問題「インスタンス変数を隠す」問題

#import "SEM2REDOAppDelegate.h" 
#import "SEM2REDOViewController.h" 

@implementation SEM2REDOAppDelegate 

@synthesize window; 
@synthesize navController; 


#pragma mark - 
#pragma mark Application lifecycle 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  
    [self.window makeKeyAndVisible]; 

    SEM2REDOViewController *firstController = [[SEM2REDOViewController alloc] 
              initWithNibName:@"SEM2REDOViewController" bundle:nil]; 
    UINavigationController *navController = [[UINavigationController alloc] 
               initWithRootViewController:firstController]; 

    [self setNavContorller:navController]; 
    [window addSubview:[navController view]]; 

    [navController release]; 
    [firstController release]; 

    return YES; 
} 

、その後は私の最初のビューコントローラ

- (IBAction)chooseFirstMeeting:(id)sender {  
    SelectRotationController *selectView = [[SelectRotationController alloc] 
              initWithNibName:@"SelectView" bundle:[NSBundle mainBundle]]; 
    [selectView.navigationItem setTitle:@"Select First Meeting"]; 
    [self.navigationController pushViewController:self.selectRotationController animated:YES]; 
    self.selectRotationController = selectView; 
    [selectView release]; 
} 

の内部方法である私は、このことを知っています非常に単純な質問かもしれませんが、私はこれを始めました。高校でのプログラミングを集中的に勉強しているので、本当に助けてくれてありがとう!何か他のものに

答えて

0

名前の変更からNavController

UINavigationController *navController = [[UINavigationController alloc] 
              initWithRootViewController:firstController]; 

。コンテキストメニューから "Refactor"を選択し、次に "Rename ..."という言葉を "navController"という言葉でコントロールクリックすると自動的にこれを行うことができます。

説明:

問題、私が合成された宣言されたプロパティからNavController下のインスタンス変数と同じ名前を持つ、ローカル変数からNavControllerで、信じています。

編集: はまた、これはタイプミスのようだ:

[self setNavContorller:navController]; 

正しい:

[self setNavController:navController]; 
+0

感謝を!私の.hファイルでは、UINavigationController * navControllerを持つ@propertyを持っていることが重要です(私もそれを変更する必要がありますか?)それらの警告は消えました!今はアプリケーションが起動しますが、2番目のビューを表示するボタンは単にアプリケーションを終了しますか?何か案は? – mentorship

+0

いいえ、一度にnavControllerが1つしかない限りです。問題は、同じ名前を持つ2つの異なる変数があることでした。 – zrxq

+0

コード全体が見えなくてもわかりにくいので、コンソールを起動(シフトコマンド-CまたはメインのXcodeメニューの表示/デバッグエリアから)し、そのボタンをクリックした後で出力を見ることができます。おそらく、例外の説明が表示されます。 – zrxq

関連する問題