Dans mon application de délégué, je crée un contrôleur de tabulation avec un tas de contrôleurs de vue pour cela, puis un UIViewController distinct que je montre comme vue la plus haute jusqu'à ce que l'utilisateur effectue un certaine action.UIView ne répond pas aux touches après 'removeFromSuperview'
Je recouvre initialement mon contrôleur d'onglet avec le deuxième contrôleur, mais éventuellement, le second contrôleur est ignoré via 'removeFromSuperview'. Cependant, après que cela se produit, la vue du contrôleur d'onglets ne répondra à aucune interaction de prise ou d'interface utilisateur. Mon application n'est pas accrochée car je peux voir le traitement se produire.
Y a-t-il un moyen de faire en sorte que le contrôleur de tabulation devienne le répondeur de facto après le rejet de la vue la plus haute?
Voilà comment je crée d'abord les deux contrôleurs de vue:
{
// main navigation controller is a tab bar
UITabBarController *tabBarController = [[UITabBarController alloc] init];
tabBarController.viewControllers = [NSArray arrayWithObjects: controller1,
controller2,
controller3, nil];
// Add the tab bar to the view
[window addSubview:tabBarController.view];
// Creating the 2nd navigation controller - covering up the tab bar
// temporarily
UIViewController *viewController = [[MySecondViewController alloc]
initWithNibName:@"SomeView"
bundle:nil];
UINavigationController *navController = [[UINavigationController alloc]
initWithRootViewController:viewController];
[viewController release];
// Configure and show the second navigation controller
[window addSubview:[navController view]];
// Make everything visible
[window makeKeyAndVisible];
}
Comment le plus vue de dessus est rejetée:
@interface MySecondViewController : UIViewController
{
}
-(void)dismissMe;
@end
@implementation MySecondViewController
-(void)dismissMe
{
// Here, the this view is getting removed
[self.view removeFromSuperview];
}
@end
Je ne veux pas le plus haut sommet en vue de ressembler j'ajoutais un dialogue modal et souhaite que l'écran soit là dès que l'application est lancée.
J'ai essayé ceux-ci mais je n'ai pas travaillé; Cependant, cela m'a donné l'idée d'essayer autre chose, qui a été couronnée de succès. J'ai fait la classe UIWindow échanger les vues dans le rejet de ME comme suit: [appDelegate.window exchangeSubviewAtIndex: 0 withSubviewAtIndex: 1]; \t \t \t \t [appDelegate.tabBarController.view GETFirstResponder]; Excepté cela a conduit à un autre problème où les éléments UIButton dans la barre d'état ne répondra pas à activer/désactiver. Poster une question distincte pour cela. –