Удаление UIView из кнопки назад / сделано - PullRequest
1 голос
/ 27 июля 2010

У меня есть небольшое приложение, которое на домашнем экране имеет несколько кнопок, при нажатии эти кнопки загружаются в новом представлении, все это прекрасно работает:

- (IBAction)showMaps:(id)sender {    

    MapViewController *viewcontroller = [[MapViewController alloc] initWithNibName:@"MapView" bundle:nil];
    [[self view] addSubview:viewcontroller.view];

    [viewcontroller release];

}

Проблема возникает при загрузке MapView. Я создал новый IBAction в файле MapViewController.h:

- (IBAction)showHome:(id)sender;

А также это действие в файле MapViewController.m:

- (IBAction)showHome:(id)sender {
    [self.view removeFromSuperview];

}

Но не радость, новичок в этом, так что любая помощь более чем приветствуется!

1 Ответ

1 голос
/ 27 июля 2010

Ваш метод showMaps: создает контроллер представления, но не сохраняет его.Вам нужно сохранить право собственности на этот viewController, если вы хотите, чтобы он оставался без присмотра.Я бы предложил добавить свойство на ваш главный контроллер вида - тот, который содержит метод showMaps:.Пример кода:

MainViewController.h

@interface MainViewController : UIViewController {
    MapViewController * mapViewController;
}
@property (nonatomic, retain) MapViewController * mapViewController;
- (IBAction)showMaps:(id)sender;
@end

MainViewController.m

@implementation MainViewController

@synthesize mapViewController;

- (void)dealloc {
    [mapViewController release];
    [super dealloc];
}

- (IBAction)showMaps:(id)sender {
    self.mapViewController = [[[MapViewController alloc]
                              initWithNibName:@"MapView"
                                       bundle:nil] autorelease];
    [[self view] addSubview:mapViewController.view];
}

@end
...