【问题标题】:Removing UIView from back/done button从后退/完成按钮中删除 UIView
【发布时间】:2010-07-27 13:11:41
【问题描述】:

我有一个小应用程序,它在主屏幕上有几个按钮,当单击这些按钮时,会在新视图中加载,这一切正常:

- (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];

}

但不高兴,有点新手,所以任何帮助都比欢迎!

【问题讨论】:

    标签: iphone ibaction


    【解决方案1】:

    您的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
    

    【讨论】:

    • 可能必须让您随时待命解决我遇到的所有其他问题 :)
    • 这听起来像是一个付费职位。我会把我的简历发给你;)
    猜你喜欢
    • 1970-01-01
    • 2016-02-19
    • 1970-01-01
    • 2016-05-26
    • 2014-05-30
    • 2018-12-29
    • 1970-01-01
    • 2020-08-28
    • 1970-01-01
    相关资源
    最近更新 更多