我现在已经研究了2天,似乎无法自学如何从不同的班级访问我的NSMutableArray。我想用我的旧“selectedArray”数组中的信息填充我的新“buildButtonText”数组。 我会发布所有相关的代码,我很感激任何人花时间帮我找到让我感到困扰的东西。提前感谢您的时间。
在ViewController.h中:
@interface ViewController : UIViewController{
NSMutableArray *selectedArray;
}
@property (copy, nonatomic) NSMutableArray *selectedArray;
@end
在ViewController.m中:
#import "ViewController.h"
#import "ViewController2.h"
@interface ViewController ()
@end
- (void)viewDidLoad
{
selectedArray=[[NSMutableArray alloc]init];
}
//....Other methods which dictate the objects in the final "selectedArray"....
-(IBAction)Next:(id)sender{
ViewController2 *nextViewController = [[ViewController2 alloc]init];
nextViewController.buildButtonText = selectedArray;
}
//.....Or perhaps here I should use "prepareForSegue" to pass objects...?
在ViewController2.h中:
#import "ViewController.h"
@interface ViewController2 : UIViewController{
NSMutableArray *buildButtonText;
}
@property (strong, nonatomic) NSMutableArray *buildButtonText;
@end
在ViewController2.m中:
#import "ViewController2.h"
#import "ViewController.h"
@interface ViewController2 ()
@end
- (void)viewDidLoad{
buildButtonText=[[NSMutableArray alloc]init];
NSLog(@"Count of array: %d", [buildButtonText count]);
}
日志返回数组中的“0”项。我也尝试从第二个视图控制器询问变量,如果这实际上是正确的协议,我将非常感谢一个简短的演示。如果您无法从我的代码中辨别出来,那我就相当新了。
答案 0 :(得分:0)
为什么不使用prepareForSegue?
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([[segue identifier] isEqualToString:@"YOUR_SEGUE_IDENTIFIER"])
{
SECOND_VIEW_CONTROLLER *svc=[segue destinationViewController];
svc.NSMUTABLEARRAY_TO_RECEIVE=NSMUTABLEARRAY_TO_SEND;
}
}
也许这会有帮助吗?只需更换大写字样。
我最近刚刚启动了iOS app dev,我在同样的情况下使用了类似的东西,效果很好!请务必将第二个.h
的{{1}}文件导入第一个文件。