Bri*_*ian 1 iphone variables nsstring uinavigationcontroller
我有2个视图共享相同的类文件(.h和.m).在第一个视图中,我有一个UIPicker,其中包含一个项目列表和一个按钮.如果用户单击该按钮,我希望我的第二个视图提供相应的图片(基于在UIPicker中选择的项目).
我的想法是根据所选项目在第一个视图中设置NSString.然后,当用户单击按钮将第二个视图推送到屏幕上时,我可以使用新视图传递该字符串.我一直在"谷歌搜索"一段时间,但我似乎无法用手指环绕它.如果重要,我正在使用导航控制器.这是在按钮单击上执行的代码:
-(IBAction) viewPictures{
ViewControllerClass *sView = [[ViewControllerClass alloc] initWithNibName:@"ViewController2XIB" bundle:nil];
[self.navigationController pushViewController:sView animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
您可以将一个NSString*属性添加到ViewControllerClass并在初始化之后设置它(这将是最简单的),或者您可以创建自己的init方法,该方法接受一个字符串并将其设置在那里.
选项1:
(将其放在.h文件中)
@interface ViewControllerClass : UIViewController {
NSString *someString;
}
@property (nonatomic, copy) NSString *someString;
@end
Run Code Online (Sandbox Code Playgroud)
(然后在你的.m文件中)
@implementation ViewControllerClass
@synthesize someString;
@end
Run Code Online (Sandbox Code Playgroud)
将您的代码从上面改为:
-(IBAction) viewPictures{
ViewControllerClass *sView = [[ViewControllerClass alloc] initWithNibName:@"ViewController2XIB" bundle:nil];
sView.someString = @"Whatever String you want";
[self.navigationController pushViewController:sView animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
选项2:
(将其放在.h文件中)
@interface ViewControllerClass : UIViewController {
NSString *someString;
}
- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle someString:(NSString *)SomeString;
@end
Run Code Online (Sandbox Code Playgroud)
(然后在你的.m文件中)
@implementation ViewControllerClass
- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle someString:(NSString *)SomeString
{
if(self = [super initWithNibName:nibName bundle:nibBundle]) {
someString = [SomeString copy];
}
return self;
}
@end
Run Code Online (Sandbox Code Playgroud)
将您的代码从上面改为:
-(IBAction) viewPictures{
ViewControllerClass *sView = [[ViewControllerClass alloc] initWithNibName:@"ViewController2XIB" bundle:nil someString:@"Whatever String you want"];
[self.navigationController pushViewController:sView animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2172 次 |
| 最近记录: |