0

在上一个按钮中按下按钮时,我打开了一个 UIViewController:

在第一个:

-(IBAction)info:(id)sender{

MapInfo *infoView = [[MapInfo alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:infoView animated:YES];
}

我想向 MapInfo 发送两个参数,但我找不到怎么做。

先感谢您

4

3 回答 3

2

您可以编写自定义 init 方法并使用它来代替initWithNibName:bundle:

- (id) initWithParameter1:(id)parameter1 parameter2:(id) parameter2:(id)parameter
{
    if (self = [super initWithNibName:nil bundle: nil]){
        // custom initialization here
    }
    return self;
}

或者您可以为您的参数添加属性MapInfo并在呈现之前设置它们:

MapInfo *infoView = [[MapInfo alloc] initWithNibName:nil bundle:nil];
infoView.parameter1 = parameter1;
infoView.parameter2 = parameter2;
[self presentModalViewController:infoView animated:YES];
于 2012-08-22T11:44:46.220 回答
1

您应该阅读有关应用程序架构设计(设计模式、oop 等)的更多信息。

我会这样做:你有 Model 对象和两个控制器,每个控制器都可以访问 Model 实例。然后一个控制器更改模型中的数据并呈现另一个控制器。因此,另一个控制器也可以访问新数据。

阅读资源:

于 2012-08-22T11:47:08.247 回答
0

使用参数在 MapInfo 中创建自定义方法

 //assuming you want NSString for parameter type
-(id)initWithParameterOne:(NSString*)one parameterTwo:(NSString*)two
{
    if (self = [super init]) {
       .......
    }

    return self;
}

不要忘记添加-(id)initWithParameterOne:(NSString*)one parameterTwo:(NSString*)two;MapInfo 标题

你可以这样称呼它

-(IBAction)info:(id)sender{

MapInfo *infoView = [[MapInfo alloc] initWithParameterOne:dataOne parameterTwo:dataTwo];
[self presentModalViewController:infoView animated:YES];
}
于 2012-08-22T11:48:16.893 回答