0

我在 Test1ViewController.m 中推送 test2ViewController,

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

在 Test2ViewController.m 中,我插入了一个子视图 test3ViewController,

Test3ViewController *test3ViewController = [[Test3ViewController alloc] initWithNibName:@"Test3ViewController" bundle:nil];
[self.view addSubview:test3ViewController.view];

我的问题,我想在 test3ViewController 中推送一个新视图(test4ViewController),但是 test3ViewController.view 中的按钮操作不起作用

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

似乎 test3ViewController 不在导航流中,如何在插入视图上推送新视图?

4

1 回答 1

0

test3ViewController 从未添加到 navigationController 的堆栈中。如果要推送 test4ViewController,则必须从 test2ViewController 执行,或者使用 UINavigationController 的 setViewControlers:animated: 方法将 test3ViewController 添加到堆栈中:

NSMutableArray *array = [NSMutableArray arrayWithArray:test2ViewController.navigationController.viewControllers];
[array addObject:test3ViewController];
[test2ViewController.navigationController setViewControllers:array animated:NO];
[test2ViewController.navigationController popToViewController:test3ViewController animated:NO];
于 2010-12-12T18:45:01.137 回答