我有一个带有 2 个 tabBarItems 的 tabBarController 应用程序。每个 viewControllers 都包含 tableView。
在 didSelectRowAtIndexPath 上,我正在使用以下代码行加载详细视图:
detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController_iPad" bundle:[NSBundle mainBundle]];
detailViewController.selectedDetail = [selectedDetail valueForKey:@"cardText"];
detailViewController.selectedCardTitle2 = [selectedCardTitle valueForKey:@"cardTitle"];
detailViewController.selectedRow2 = [self.tableViewInbox indexPathForSelectedRow];
detailViewController.detailCardsArray = allCards;
detailViewController.detailAllFetchedCards = allFetchedCards;
detailViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[inboxViewController presentModalViewController:detailViewController animated:YES];
问题是,当 detailView 被加载(是实际显示的 viewController)并且我更改为另一个 tabBarItem 时,detailView DOES NOT DISMISS。这意味着,如果调用了 didSelectRowAtIndexPath,我将无法再次加载 detailView。
在我的 AppDelegate 我有方法
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
在这种方法中,我将检查 detailView 是否是实际显示的 viewController。
如果是,并且 tabBarItem 发生更改,则关闭 DetailView。
现在我的问题是:如何检查 detailView 是否已加载(当前显示的视图)?