2011-01-08 10 views
1

1つのビューコントローラから別のビューコントローラに切り替える際に問題があります。私の "AppDelegate_iPad.m" でUIViewControllerから別のUIViewControllerに切り替える方法は?

:作品

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{  

    CGRect frame = [UIScreen mainScreen].bounds; 
    window = [[UIWindow alloc] initWithFrame:frame]; 
    window.backgroundColor = [UIColor blackColor]; 

    LoginViewController_iPad *loginView = [[LoginViewController_iPad alloc] initWithNibName:@"LoginViewController_iPad" bundle:nil]; 
    [window addSubview:loginView.view]; 


    [self.window makeKeyAndVisible]; 

    return YES; 
} 

をここで

は私が持っているものです。今、私は、その画面上のログインボタンがあり、押すと、それはこれをcalles:

- (IBAction)doPressLoginButton 
{ 
    DebugLog(@"doPressLoginButton"); 

    MenuViewController_iPad *menuView = [[MenuViewController_iPad alloc] initWithNibName:@"MenuViewController_iPad" bundle:nil]; 
    [self.navigationController pushViewController:menuView animated:YES]; 
    [menuView release]; 

} 

問題は何もhappendsないということです。私は実際のnavigationconrollerを見逃していると思いますか?

誰でも手伝っていただけたらと思います。

は私が実際navigationconrollerをしないのです想定し

答えて

1

あなたのアプリケーションデリゲートにUINavigationControllerインスタンス変数を作成する必要があります。次に、合成してdeallocメソッドで解放することを確認します。

application:didFinishLaunchingWithOptions:の実装では、次のようになります。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{  

    // window is usually an IBOutlet 
    CGRect frame = [UIScreen mainScreen].bounds; 
    window = [[UIWindow alloc] initWithFrame:frame]; 
    window.backgroundColor = [UIColor blackColor]; 

    LoginViewController_iPad *loginView = [[LoginViewController_iPad alloc] initWithNibName:@"LoginViewController_iPad" bundle:nil]; 
    navigationController = [[UINavigationController alloc] initWithRootViewController:loginView]; 
    [loginView release]; 

    [self.window addSubview:navigationController.view]; 
    [self.window makeKeyAndVisible]; 

    return YES; 
}

今、あなたはself.navigationControllerを使用することができます。

+0

IBOutletであることについてのあなたのコメントについて。まあ私は知っているが、私はMainWindow.xibなしで働くので、自分でウィンドウを作成する。 – eemceebee

0

ありがとう!

あなたは正しいです。 :D

self.navigationControllerは、NavigationControllerを設定しないとnilを返します。
nilオブジェクトに送信されるメッセージはすべて無視されます。

スイッチを切り替えるだけでよい場合は、 を使用してください。

[self presentModalViewController:modalViewController animated:YES]; 

代わりに、

+0

スイッチングは問題ありませんが、presentModalViewControllerはエラーをスローします。メンバー 'presentModalViewController'を構造体または共用体でないものに要求します。 – eemceebee

関連する問題