1

私は現在、腐ったトマト API から映画のリストを取得し、それらを表に表示するアプリに取り組んでいます。詳細ページを表示できるように、行をタップすると UIViewController が表示されるようにしたいと思います。

これが私の didSelectRowAtIndexPath のコードです。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath     *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
    //UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:self]; // This line of code throws an exception for some reason. 
    [self.navigationController pushViewController:detailViewController animated:YES];
}

長い間寝ていなかったのかもしれませんが、どこが間違っているのか一生わからないのです。

PS。アークを使用しています。

4

2 に答える 2

2

ナビゲーション コントローラーが初期化されていますか?

そうでない場合は、作成する場所で次のようなものが適切に欠落していますUIViewController

MyVc = [[MyVC alloc] initWithNibName:@"MyVC" bundle:nil];
UINavigationController *navCon = [[UINavigationController alloc] initWithRootViewController:myVc];
[_window addSubview:navCon.view];
于 2012-07-20T12:40:01.550 に答える
0

これらのプロパティを AppDelegate.h ファイルに書き込みます

@property (strong, nonatomic) YourFirstViewController *yourFirstController;
@property (nonatomic, retain) UINavigationController *navigationControl;

このコードを AppDelegate.m ファイルに記述します

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

        self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
        self.yourFirstViewController = [[YourFirstViewController alloc] initWithNibName:@"YourFirstViewController" bundle:nil]];
        navigationController = [[UINavigationController alloc] initWithRootViewController:self.yourFirstViewController];
        [self.window addSubview:[navigationController view]];
        [self.window makeKeyAndVisible];
        return YES;
    }

お役に立てると思います。

于 2012-07-20T12:42:01.777 に答える