0

私は HomeViewController.m を持っていますself.navigationController

 SpecificViewController *specificViewController= [[SpecificViewController alloc] initWithNibName:@"SpecificViewController" bundle:nil];  
 [self.navigationController pushViewController:specificViewController animated:YES];

そして、SpecificViewController.m にサブビューを挿入します

FirstViewController *firstViewController = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
[self.view insertSubview:firstViewController.view atIndex:0];

そして、FirstViewController.m には tableview があります。問題は、navigationController で新しい ViewController をプッシュする方法です。以下で試​​してみましたが、機能しません。

-(void)tableView:(UITableView *)tableView 
didSelectRowAtIndexPath:(NSIndexPath *)indexPath    
{
 DetailTableViewController *detail = 
 [[DetailTableViewController alloc] initWithStyle:UITableViewStyleGrouped];
 [self.navigationController pushViewController:detail animated:YES];
 [detail release];
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
}

私はまだ新しい UINavigationController を試しましたが、

UINavigationController *NEWnavigationController;
NEWnavigationController=[[UINavigationController alloc] init];                
[NEWnavigationController pushViewController:detail animated:YES];

それでもうまくいきませんでした。何か提案をいただけますか?

4

1 に答える 1

1

あなたのアプローチにはかなりの数の問題があります。

まず、SpecificViewController は最初にロードするビュー コントローラーですか? はいの場合は、このビュー コントローラーをプッシュせずに、以下に示すように、アプリケーション デリゲートでルート ビュー コントローラーとして設定します。

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:[[SpecificViewController alloc] init];

これにより、Navigation Controller がセットアップされ、表示される最初の View Controller が SpecificViewController になります。

次に、View Controller をサブビューとして挿入しないでください。2 番目のビュー コントローラーをロードしようとしている場合は、それをナビゲーション コントローラー スタックにプッシュします。以下に示すように、SpecificViewController からそれを行うことができます。

FirstViewController *firstViewController =[[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];

[self.navigationController pushViewController:firstViewController animated:YES];
于 2011-06-16T19:54:32.023 に答える