0

私は初心者です。ViewController.m にボタンがあります。ボタンを押すと、SecondViewController に移動する必要がありますが、SecondViewController は表示されません。

また、ナビゲーション バーの SecondViewController には、ViewController に戻るための [戻る] ボタンがあります。何が足りないのか教えてもらえますか?

ViewController.m:

-(IBAction)buttonPressed:(id)sender
{

    EnglishViewController *v = [[[EnglishViewController alloc]
                                initWithNibName:@"EnglishViewController"
                                bundle:nil]
                               autorelease];


    [self.navigationController pushViewController:v animated:TRUE];
}

AppDelegate.m:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    return YES;
}

解決策(@Georgeの回答に依存):

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.

    self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
    UINavigationController *navCon =[[[UINavigationController alloc]
                                      initWithRootViewController:self.viewController]
                                     autorelease];

    self.window.rootViewController =navCon;

    [self.window makeKeyAndVisible];
    return YES;
}
4

2 に答える 2

1

で作成するときは、ViewControllerそれを機能させるためにそれAppDelegate.mを囲む必要がありますnavigationController

このようなもの:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

    self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
    UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:self.viewController];
    self.window.rootViewController = navigation;
    [navigation release];

    [self.window makeKeyAndVisible];
    return YES;
}
于 2013-03-09T21:14:17.093 に答える
0

最初に確認すべきこと:-buttonPressedメソッドが実際に呼び出されているか? に nil 以外の値を取得して渡しています-pushViewController:animated:か? self.navigationControllerその呼び出しを行うとき、実際には非 nil ですか?

あなたのコードは書かれているようにうまく見えます。

于 2013-03-09T21:07:44.593 に答える