удаление видов из SubView - PullRequest
       16

удаление видов из SubView

0 голосов
/ 10 марта 2010

У меня есть приложение, которое использует функцию In App.

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



}

Когда вышеупомянутый метод вызывается, я хочу удалить все подпредставления и вернуться в главное окно моего меню (первое представление в моем приложении).

Кто-нибудь может предложить самый чистый и лучший способ сделать это?

Приветствия

EDIT:

Просто чтобы прояснить ситуацию

Я не уверен, что это имеет значение, но у меня есть экран главного меню, и я делаю следующее с помощью кнопки ввода.

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

Затем у меня есть главный экран с кнопкой, затем, когда пользователь нажимает на нее, он затем представляет их другому контроллеру модального представления, как указано выше. На этом экране есть кнопка с надписью «КУПИТЬ». Они используют щелчки, и затем StoreKit делает это, и как только оплата завершена, я хочу избавиться от двух вышеупомянутых модальных контроллеров и остаться с экраном главного меню.

Любые идеи .. я пробовал как указано выше

РЕДАКТИРОВАТЬ 2:

@ Джордан Спасибо,

Но не уверен, правильно ли я это делаю. Я понимаю приведенный выше код.

Но когда я запускаю свое приложение, мой делегат приложения загружает viewcontroller, который является моим главным меню. Затем у меня есть кнопка, которая переводит меня в другое представление, и мои функции включаются, если пользователь щелкает не разблокированную функцию, а затем отображает другой контроллер представления с включенным магазином.

Итак, помните, как мне вернуться в главное меню.

Я пробовал следующее:

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

но я получаю и ошибку в соответствии с:

ожидается ':' до '.'

Ответы [ 3 ]

1 голос
/ 10 марта 2010

Это должно работать.

// view is equal to your main view    
NSArray *subviews = [view subviews];
for (int i=0; i<[subviews count]; i++)
{
   [[subviews objectAtIndex:i] removeFromSuperview];
}
0 голосов
/ 10 июля 2013

Мы должны получить представления, которые будут удалены в массиве, чтобы мы могли удалить все с помощью перечисления

 NSArray *ChildViews = [ParentView subviews];
 for (UIView *childView in ChildViews) {
   [childView removeFromSuperview];
 }
0 голосов
/ 10 марта 2010

Если вы говорите о UIViewControllers, а не о подпредставлениях (они разные), то вы можете использовать:

 [self.navigationController popToRootViewControllerAnimated:YES];

Вы либо добавляете UIViews в UIViewController, в этом случае используйте мой код выше, либо Вы помещаете pushingViews (например, pushViewController) поверх UIViewController, в этом случае используйте код здесь.

...