FirstViewController.h:
#import <UIKit/UIKit.h>
@interface FirstViewController : UIViewController
{
NSArray *listData;
}
-(IBAction) GoToInsert: (id) sender;
@property (nonatomic, retain) NSArray *listData;
@end
FirstViewController.m:
-(IBAction) upisiRezultat:(id)sender
{
SecondViewController *secondView = [[SecondViewController alloc] initWithNibName: nil bundle: nil];
[self presentModalViewController: secondView animated: NO];
[secondView release];
}
- (void)viewDidLoad
{NSArray *array = [[NSArray alloc] initWithObjects:@"236", @"46",
@"147", @"8", @"56", @"69", @"114", @"2",
@"96", @"518", @"2", @"54", @"236", nil];
self.listData = array;
[array release];
[super viewDidLoad];
}
SecondViewontroller.h
@interface SecondViewController : UIViewController {
}
-(IBAction) insert;
@end
SecondViewontroller.m
-(IBAction) insert
{
/* Here should be the code to insert some number in listData from FirstViewController */
}
因此当应用程序加载时,它会加载FirstViewController.xib并在屏幕上显示listData数组,当我单击“转到插入”按钮时,将加载另一个视图(SecondViewController.xib),其中包含“插入”按钮,该视图应添加一些数字数组并在第一个视图上显示新数组。
怎么做?
答案 0 :(得分:0)
您可以使用self.parentViewController
访问父视图控制器。因此,沿着这些方面的某些事情(意思是我没有测试过这个 - 你应该)应该有效:
FirstViewController *firstViewController = self.parentViewController;
NSMutableArray *newArray = [[NSMutableArray alloc] initWithArray:firstViewControl.listData];
[newArray addObject:@"42"];
[firstViewController setListData:[NSArray arrayWithArray:newArray]];
[newArray release];
但是,由于您要将对象添加到listArray
,因此使用NSMutableArray
会更自然。此外,当您看起来更像是要拥有NSString
个对象时,您当前正在向数组添加NSNumber
s。
答案 1 :(得分:0)
我不知道你是否有imported
SecondViewController.h,我想我知道你想要做什么。
答案 2 :(得分:0)
或者,也许更容易,您可以在主AppDelegate中拥有变量。
把: int myNumber; 在projectname_AppDelegate.h文件中
然后在每个视图控制器中,您可以导入AppDelegate.h文件,然后执行以下操作:
AppDelegate * appDelegate =(AppDelegate *)[[UIApplication sharedApplication] delegate]; 然后阅读或更改:
appDelegate.myNumber
===
这不是你应该一直做的事情(你不希望你的appDelegate成为一个巨大的数据存储库),但它可以在需要时为你提供快速解决方案......