我是手机编程的新手。我已经将一些数据存储在数组中,我希望将该数组数据从一个视图传递到另一个视图。我尝试了但是它没有工作。可以告诉我什么是错误在那。
#进口 “firstviewcontroller.h”
@property(nonatomic,retain)NSMutableArray *tapCollection;
@property(nonatomic,retain)NSMutableArray *imageCollection;
#进口 “firstviewcontroller.m”
@synthesize imageCollection,tapCollection;
-(void)viewdidload
{
self.tapCollection = [[NSMutableArray alloc] init];
self.imageCollection = [[NSMutableArray alloc] init];
}
- (void)insertNewObject:(id)sender
{
secondviewcontroller*r= [[secondviewcontrolleralloc] initWithNibName:@"secondviewcontroller" bundle:nil];
self.navigationController.navigationBar.tintColor=[UIColor blackColor];
r.imageCollection1 =imageCollection;
r.tapCollection1 =tapCollection;
[self.navigationController pushViewController:r animated:YES];
}
实际上我在数组中存储的数据是图像和按钮标记值。在控制台中显示图像和按钮标记值我存储在数组中
2013-03-19 21:54:03.374 Taukyy[290:1c103] (
0,
"<UIImage: 0x9cd59e0>",
1,
"<UIImage: 0x9cd6220>",
2,
"<UIImage: 0x9cd6b70>"
)
@property(nonatomic,retain)NSMutableArray *tapCollection1;
@property(nonatomic,retain)NSMutableArray *imageCollection1;
@synthesize tapCollection1,imageCollection1;
- (void)viewDidLoad
{
imageCollection1 = [[NSMutableArray alloc] init];
tapCollection1 = [[NSMutableArray alloc] init];
NSLog(@"%@",tapCollection1);
NSLog(@"%@",imageCollection1);
}
但是这里的值没有显示。它显示如下
2013-03-19 21:29:16.379 Taukyy[594:1c103] (
)
2013-03-19 21:29:16.380 Taukyy[594:1c103] (
)
2013-03-19 21:29:16.381 Taukyy[594:1c103] (
)
请允许任何机构告诉我这段代码中的错误 谢谢 阿斯拉姆
答案 0 :(得分:3)
从viewDidLoad's
secondviewcontroller.m
数组分配
你tapCollection1
&amp; imageCollection1
是retain
个属性。因此,retain
分配的对象。
你的 secondviewcontroller.h 应该是,
@property(nonatomic,retain)NSMutableArray *tapCollection1;
@property(nonatomic,retain)NSMutableArray *imageCollection1;
和
- (void)viewDidLoad
{
//remove the allocation codes
}
您可以将其记录在 firstviewcontroller.m 中,例如
- (void)insertNewObject:(id)sender
{
secondviewcontroller*r= [[secondviewcontrolleralloc] initWithNibName:@"secondviewcontroller" bundle:nil];
self.navigationController.navigationBar.tintColor=[UIColor blackColor];
r.imageCollection1 =imageCollection;
r.tapCollection1 =tapCollection;
NSLog(@"%@",r.imageCollection1);
NSLog(@"%@",r.tapCollection1);
[self.navigationController pushViewController:r animated:YES];
}
答案 1 :(得分:3)
不要再次分配/初始化阵列。你在准备segue时设置它们。
@synthesize tapCollection1,imageCollection1;
- (void)viewDidLoad
{
//imageCollection1 = [[NSMutableArray alloc] init];
//tapCollection1 = [[NSMutableArray alloc] init];
NSLog(@"%@",tapCollection1);
NSLog(@"%@",imageCollection1);
}
答案 2 :(得分:0)
不要init
mutableArrays
viewDidLoad
中的SecondViewController
,
而是在init
SecondViewController
方法中进行
-(id)initWithNibName //this method
{
//create object
self.imageCollection1 = [NSMutableArray alloc] init];
self.tapCollection1 = [NSMutableArray alloc] init];
}
您现在可以获得正确的值..
答案 3 :(得分:0)
为什么要分配先前分配的数组。
删除
imageCollection1 = [[NSMutableArray alloc] init];
tapCollection1 = [[NSMutableArray alloc] init];