我在read.m类中有数据。我创建了父视图控制器进行读取。所以,父母观点是home.m. 在home.m我使用现有的模态视图控制器获取零售商类。我希望通过home.m。
将数据从read.m发送到retailer.mread.m
-(void)requestFromtblViews:(id)navigation forIndex:(int)index forText:(NSString *)text withDBdata:(NSArray *)DBdata{
[DBdata objectAtIndex:index];
}
-(void)showRetailerInfo
{
//NSLog(@"show retailer Information is....");
[self.ReadViewContent GetshowRetailerInfo:self];
}
home.m
-(void)GetshowRetailerInfo:(id)currentview;
{
// NSLog(@"get retailer info....");
Retailer_Info = [[RetailerInfoViewController alloc]initWithNibName:@"RetailerInfoViewController" bundle:[NSBundle mainBundle]];
Retailer_Info.view.frame = CGRectMake(0, 0, 320, 480);
[Retailer_Info loadDefaultView];
[self presentViewController:Retailer_Info animated:YES completion:nil];
[Retailer_Info release];
}
答案 0 :(得分:1)
使值或变量全局化。在Appdelegate
中声明变量,然后将其导入到您想要的位置。您还可以创建单例类并导入其值。这就像将值从一个视图传递到另一个视图。由于变量将保持不变,但值将根据您的代码而变化。
请看这里: -
Passing Data between View Controllers
http://oleb.net/blog/2012/02/passing-data-between-view-controllers/
答案 1 :(得分:0)
使用委托协议。
在Home.h
@protocol RetailerDelegate <NSObject>
-(void) passDataToRetailer:(NSArray *)array;
@end
@interface Home:UIViewController
{
Read readObj;
}
@property(assign, nonatomic) id <RetailerDelegate> delegate;
在Home.m
//call method where you want to pass data
[delegate passDataToRetailer:readObj.array];
在RetailerInfoViewController.h
@interface RetailerInfoViewController : UIViewController<RetailerDelegate>
{
NSArray *localArray;
}
在RetailerInfoViewController.m
//in viewdidload
Home *parent = [self presentingViewController];
parent.delegate = self;
-(void) passDataToRetailer:(NSArray *)array
{
//here you receive your data
}
希望这可以帮助你...
答案 2 :(得分:0)
如果您想首先访问另一个类的属性,则需要将该.h文件导入到您想要的位置并创建该类的对象。并访问哪种方法...
假设您需要将第二个视图控制器属性访问到FirstViewController中。然后将SecondViewController.h文件定义为FirstViewController.and make object
SecondViewController *controller = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:Nil];
controller.method;
//方法你想在这里访问什么......