2010-06-23 3 views
1

В appdidfinishlaunch я загружая tabbarcontroller как подвид и после этого им нагружать другой видiPhone: сила от подвид удалить себя

MySubView * mySubView = [[MySubView alloc] init]; 
[window addSubview:mySubView]; 
[mySubView release]; 

Я хочу, чтобы закрыть эту верхнево слоя с ButtonClick в подвид, так Я создала IBAction и пытался diffrent вещи, чтобы заставить фактический вид закрыть:

// 1. 
[self.view removeFromSuperview]; 

// 2. 
id *delegate = [[UIApplication sharedApplication] delegate]; 
[[[delegate view] objectAtIndex:0] removeFromSuperview]; 


//3. 
[[[delegate window] view] removeFromSuperview]; 

Так как я могу выскочить этот подвид из окна?

веселит Simon

ответ

6

Вы могли бы сделать пару вещей. Один из способов будут присвоить уникальный тег для зрения и получить его с помощью этого тега позже, так:

MySubView* mySubView = [[MySubView alloc] init]; 
[mySubView setTag:100]; 
[window addSubview:mySubView]; 
[mySubView release]; 

// later 

[[[delegate window] viewWithTag:100] removeFromSuperview]; 

Другого перебирать подобозрение окна, пока вы не найдете тот, который является экземпляром вашего уникального класса, затем удалите это. Итак:

MySubView* mySubView = nil; 
for(UIView* view in [[delegate window] subviews]) { 
    if([view isKindOfClass:[MySubView class]]) { 
    mySubView = (MySubView*)view; 
    break; 
    } 
} 
[mySubView removeFromSuperview]; 
+0

Я получил концепцию и попробовал оба варианта, но я получаю ошибки. в основном: непризнанный селектор, отправленный в экземпляр. также я изменил [window addSubview: infostartView.view]; –

+0

@Simon: Вы должны отправить больше кода или описать проблему больше. Если вы настроили способ, описанный выше, вы не получите никаких ошибок. Я понятия не имею, что такое экземпляр infostartView, поскольку вы не предоставили такого контекста. –

Смежные вопросы