1

ホーム画面にいくつかのボタンがある小さなアプリがあります。これらのボタンをクリックすると、新しいビューに読み込まれます。これはすべて正常に機能します。

- (IBAction)showMaps:(id)sender {    

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

    [viewcontroller release];

}

問題は、MapView がロードされたときに発生します。MapViewController.h ファイルに新しい IBAction を作成しました。

- (IBAction)showHome:(id)sender;

また、MapViewController.m ファイル内のこのアクション:

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

}

しかし、喜びはありません。これは少し初心者なので、歓迎以上の助けがあれば!

4

1 に答える 1

1

メソッドはView Controllerを作成しますが、保持しませshowMaps:ん。固定したい場合は、そのviewControllerの所有権を保持する必要があります。メソッドを含むメインのView Controllerにプロパティを追加することをお勧めします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
于 2010-07-27T13:41:04.217 に答える