2

UIKit要素とxibファイルを使用していくつかのアプリケーションを開発しています。まず、テーブルと詳細ビューで構成されるマスター詳細アプリケーションを作成しました。セルと詳細ビューをカスタマイズしましたが、すべてがうまく機能しました。次に、新しいビューを追加したいと思いました。これは、ユーザーに表示される最初のビューのように動作します。新しいビューを作成し、マスタービューが追加されたように、それをアプリデリゲートに追加したいと思いました。動作しますが、詳細ビューが動作せず、理由がわかりません。わかりやすくするためのコードを次に示します。

AppDelegate:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[self customizeAppearance];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
HomeScreenViewController *homescr = [[HomeScreenViewController alloc]initWithNibName:@"HomeScreenViewController" bundle:nil];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:homescr];
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
return YES;
}

私の新しい最初のビューにはボタンがあります:

- (IBAction)goToTableView:(id)sender {
MasterViewController *tableView = [[MasterViewController alloc]initWithNibName:@"MasterViewController" bundle:nil];
[self presentViewController:tableView animated:YES completion:nil];
}

masterViewControllerとdisplaytableに移動します。次に、テーブル内のすべての要素をクリックしても何も起こりません。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath
{
NSLog(@"did select is up");
if (!self.detailViewController) {
    self.detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
}
NSDate *object2 = [array1 objectAtIndex:[indexPath row]];
self.detailViewController.detailItem = object2;
[self.navigationController pushViewController:self.detailViewController animated:YES];
}

NSLogは情報を表示しますが、詳細ビューは表示されません。また、navigationControllerは最初のビューに表示され、テーブルビューには表示されません。

誰かが私が間違っていることを教えてもらえますか?

前もって感謝します :)

4

1 に答える 1

2

goToTableViewメソッドでスタックビューtableViewをプッシュしないのはなぜですか。その変更後、すべてが機能するはずです。

- (IBAction)goToTableView:(id)sender {
    MasterViewController *tableView = [[MasterViewController alloc]initWithNibName:@"MasterViewController" bundle:nil];
    [self.navigationController pushViewController:tableView animated:YES];
}

詳細については、このトピックを参照してください:モーダルビューのプッシュ

于 2012-10-30T22:55:30.663 に答える