2 つの UITableView を含む UIViewController があります。最初の UITableView で行を選択すると、同じ UIViewController をプッシュする必要がありますが、これは発生しません。
UIViewController.hi には、
FirstTableViewController *firstController;
SecondTableViewController *secondController;
UIViewController.mi には、
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
if (firstController == nil) {
firstController = [[FirstTableViewController alloc] init];
}
if (secondController == nil) {
secondController = [[SecondTableViewController alloc] init];
}
UINavigationController *firstNavigationController = [[UINavigationController alloc] initWithRootViewController:firstController];
firstController.product = self.product;
[firstTable setDataSource:firstController];
[firstTable setDelegate:firstController];
firstNavigationController.view = firstController.tableView;
}
FirstTableViewController.m では、didSelectRowAtIndexPath 私が持っている、
[self.searchDisplayController setActive:YES animated:YES];
UIViewController *controller = [[UIViewController alloc]initWithNibName:@"UIViewController" bundle:nil];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:controller];
navController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
controller.product = prod;
NSLog(@"Navigation controller is %@",self.navigationController); //not null
[[self navigationController]pushViewController:controller animated:YES];
助けてください。
編集 #1: UIViewController は、UtilityApp の FlipsideViewController から呼び出されます。