У меня есть следующий код, довольно простой:
//SecondViewController.m
if(contentRvController==nil){
contentRvController = [[ContentView alloc]
initWithNibName:@"ContentView" bundle:nil]; //ContentView is a custom UIViewController
....
[self.view addSubview:contentRvController.view];
}
else{
contentRvController.view.hide = YES;
[contentRvController release];
contentRvController = nil;
}
Обычно, когда код запускается с помощью кнопки, если UIViewController не существует, создайте его и отобразите его (он должен отображаться в главном большом рабочем столе, это представление SecondViewController). Если он уже открыт, закройте его и удалите на свободные ресурсы.
Теперь contentRvController - это экземпляр ContentView, пользовательский UIViewController. У него есть свой собственный закрытый UIButton, который IBAction это:
//ContentView.m
- (IBAction) closeView {
self.view.hidden = YES;
[self release];
self = nil;
}
Теперь, когда запускается из SecondViewController, выпуск contentRvController работает правильно (или мне так кажется), представление появляется и исчезает. Но когда нажата кнопка закрытия ContentView, она также закрывает представление, но при попытке открыть ее снова if(contentRvController==nil)
возвращает FALSE
, поэтому я должен дважды нажать кнопку, чтобы выполнить ее, чтобы снова отобразить ContentView.
Мне кажется, что self = nil;
работает не так, как contentRvController = nil;
, хотя предполагается, что оба указывают на одно и то же место, и я потерян с этим.
¿Есть идеи? Приветствия из Мексики