2010-03-10 7 views
0

J'ai une application qui utilise la fonctionnalité InApp.Suppression des vues du sous-affichage

-(void) completeTransaction: (skPaymenttransaction *)transaction{ 



} 

Lorsque la méthode ci-dessus est appelé je veux supprimer tous les sous-vues et revenir à ma fenêtre du menu principal (la première vue dans mon application).

Quelqu'un peut-il suggérer de nettoyer et la meilleure façon de le faire?

Vive

EDIT:

Juste pour rendre les choses claires

Je ne suis pas sûr si cela fait une différence, mais j'ai mon écran du menu principal, puis iam faire ce qui suit avec entrer bouton.

UIViewController *controller = [[UIViewController alloc] initWithNibName:@"NibFile" bundle:nil]; 
controller.delegate = self; 
controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
[self presentModalViewController:controller animated:YES]; 
[controller release]; 

Puis-je avoir un écran principal avec un bouton puis lorsqu'un utilisateur, il les présente ensuite les robinets avec un autre contrôleur modal vue comme ci-dessus. Sur cette vue est un bouton qui dit acheter sur elle. Ils utilisent des clics, puis le StoreKit fait son affaire et une fois le paiement est terminé, je veux me débarrasser des deux contrôleurs modaux ci-dessus et à gauche avec l'écran du menu principal.

Toutes les idées .. Ive a essayé comme ci-dessus

EDIT 2:

@Jordan Merci,

Mais pas sûr si im faire cela correctement. Je comprends le code ci-dessus. Mais quand je démarre mon application, mon délégué d'application charge un viewcontroller qui est mon menu principal. Ensuite, j'ai un bouton qui me prend à une autre vue et sur mes fonctionnalités si l'utilisateur clique sur une fonctionnalité qui n'est pas déverrouillée, puis il affiche un autre contrôleur de vue avec le magasin sur.

Donc, dans cet esprit, comment puis-je revenir à mon menu principal.

J'ai essayé ce qui suit:

NSArray *subviews = [myAppdelegate.viewcontroller.view subviews]; 
for (int i=0; i<[subviews count]; i++) 
{ 
    [[subviews objectAtIndex:i] removeFromSuperview]; 
} 

mais je reçois et erreur le long des lignes de:

attendus: '' avant '' ?

Répondre

1

Cela devrait fonctionner.

// view is equal to your main view  
NSArray *subviews = [view subviews]; 
for (int i=0; i<[subviews count]; i++) 
{ 
    [[subviews objectAtIndex:i] removeFromSuperview]; 
} 
+3

Une doublure: '[view.subviews makeObjectsPerformSelector: @selector (removeFromSuperview)];' – kennytm

0

Si vous parlez UIViewControllers et non subviews (ils sont différents), vous pouvez utiliser:

[self.navigationController popToRootViewControllerAnimated:YES]; 

Vous êtes soit d'ajouter UIViews à un UIViewController, auquel cas utiliser mon code ci-dessus, ou Vous êtes pushingViews (par exemple pushViewController) sur un UIViewController, auquel cas utilisez le code ici.

0

Nous devons obtenir les points de vue à supprimer dans un tableau afin que nous puissions enlever tout au moyen de dénombrement

NSArray *ChildViews = [ParentView subviews]; 
for (UIView *childView in ChildViews) { 
    [childView removeFromSuperview]; 
} 
Questions connexes