1

現在モーダル内にView Controllerをプッシュしようとしていますが、何も起こりません。したがって、tabBarControler をプッシュする rootViewController として loginController があり、tabBar ビューの 1 つの中で presentModal を開きます。presentModal では、クリックすると別のビューをプッシュする UITableView がありますが、これを実行しようとしても何も起こりません。より明確にするために、階層を次に示します。

LoginViewController(ルート ビュー コントローラーとして) >>>push>>> UITabBarController(HomeViewController と他 2 つ) >>>open>>> PushViewController で別のビューを開く必要がある PackViewController(presentModal):

コード:

AppDelegate.m

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

LoginViewController_iPhone *loginViewController = [[LoginViewController_iPhone alloc] init];

self.navigationController = [[[UINavigationController alloc] initWithRootViewController:loginViewController] autorelease];

self.window.rootViewController = self.navigationController;

LoginViewController.m

- (void)viewDidLoad
{
[super viewDidLoad];

HomeViewController_iPhone *referenciaHomeViewController = [[HomeViewController_iPhone alloc] init];
MapaViewController_iPhone *referenciaMapaViewController = [[MapaViewController_iPhone alloc] init];
GuiaViewController_iPhone *referenciaMidiaViewController = [[GuiaViewController_iPhone alloc] init];

UINavigationController *navHome = [[UINavigationController alloc] initWithRootViewController:referenciaHomeViewController];
UINavigationController *navMapa = [[UINavigationController alloc] initWithRootViewController:referenciaMapaViewController];
UINavigationController *navGuia = [[UINavigationController alloc] initWithRootViewController:referenciaMidiaViewController];

self.tabBarController = [[UITabBarController alloc] init];
[self.tabBarController.tabBar setBackgroundImage:[UIImage imageNamed:@"tabBarBackground"]];
[self.tabBarController.tabBar  setSelectionIndicatorImage:[UIImage imageNamed:@"tabBarSelected"]];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:navHome, navMapa, navGuia, nil];

}

- (void)login {

    [self.navigationController pushViewController:self.tabBarController animated:YES];

}

PackViewController.m (PRESENTMODAL):

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

[tableView deselectRowAtIndexPath:indexPath animated:YES];

CompraPackViewController_iPhone *controller = [[CompraPackViewController_iPhone alloc] init];

[self.navigationController pushViewController:controller animated:YES];
[controller release];

}
4

1 に答える 1