在上一个按钮中按下按钮时,我打开了一个 UIViewController:
在第一个:
-(IBAction)info:(id)sender{
MapInfo *infoView = [[MapInfo alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:infoView animated:YES];
}
我想向 MapInfo 发送两个参数,但我找不到怎么做。
先感谢您
在上一个按钮中按下按钮时,我打开了一个 UIViewController:
在第一个:
-(IBAction)info:(id)sender{
MapInfo *infoView = [[MapInfo alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:infoView animated:YES];
}
我想向 MapInfo 发送两个参数,但我找不到怎么做。
先感谢您
您可以编写自定义 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];
您应该阅读有关应用程序架构设计(设计模式、oop 等)的更多信息。
我会这样做:你有 Model 对象和两个控制器,每个控制器都可以访问 Model 实例。然后一个控制器更改模型中的数据并呈现另一个控制器。因此,另一个控制器也可以访问新数据。
阅读资源:
使用参数在 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];
}