2011-08-13 1 views
2

Im пытается добавить subview, а затем также удалить предыдущий вид.Правильно удалить вид и добавить subview

вот что мой код выглядит следующим образом:

HowToPlay *LetsPlay = [[HowToPlay alloc] initWithNibName:@"HowToPlay" bundle:nil]; 

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:0.75]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight 
         forView:[self view] 
         cache:YES]; 
[UIView commitAnimations]; 



MainViewController *ma = [[MainViewController alloc]init]; 
[ma.view removeFromSuperview]; 

[self.view addSubview:LetsPlay.view]; 

Mainviewcontroller является мнение, что его в данный момент. Я хочу, чтобы он отклонил эту точку зрения, затем перейдите к новому представлению LetsPlay.

Этот код запускается, и он загружает новый вид, но когда я загружаю другой вид из LetsPlay, я вижу, что mainviewcontroller все еще работает за ним. Я хочу навсегда уволить его.

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

Спасибо :)

ответ

5

Вы не собираетесь на это правильный путь: вы создаете новый экземпляр MainViewController (а также связанного с ним зрения). Затем вы пытаетесь удалить это вновь созданное представление (вызовите его instance2) из ​​своего супервизора, пока оно еще не добавлено в представление (instance1 has). Вот почему вы все еще видите mainviewcontroller.

Вместо этого вам необходимо удержать текущий/активный MainViewController. То есть вы должны держаться за ссылку на этот контроллер. Затем вы можете вызвать removeFromSuperview в своем представлении.

Надеюсь, это поможет.

+0

Итак, я получил доступ к исходной загрузке mainviewcontroller, расположенной в делегате приложения. Теперь я могу удалить его из супервизора. Теперь, как я могу загрузить новое представление? – Jacob