在不同的视图中调用方法,然后显示该视图

时间:2012-02-01 23:20:54

标签: objective-c ios xcode

我有一个名为“chooseDateViewController”的viewController,在.m文件中,它从用户获取输入并放入一个字符串。我有另一个名为“showTable”的viewController,我有一个自定义表,它接受字符串中的日期。根据日期(字符串)生成表(在showTable.m中)。

我希望能够在用户输入数据并按下按钮时调用“showTableViewController”视图控制器,然后将它们带到showTableViewController,其中日期很好地显示但我的问题是我无法传递数据来自“ chooseDate“在”showTable“中查看控制器的方法。这就是我这样做但它不起作用......我尝试过NSLog但它甚至没有进入该功能。如果有人知道为什么,那将非常感激。

由于

// In chooseDateViewController.m
-(void) sendValue { 
   NSString *date= @"July 25 2012";

   UIViewController *view5 = [[showTableViewController alloc] initWithNibName:@"showTableViewController" bundle:nil];
   [self.navigationController pushViewController:view5 animated:YES];

   [view5 receiveNumbers:date]; //trigger the method in showTable.m
   [view5 release];
}


// showTableViewController.m
-(void) receiveNumbers: (id) sender {
   NSLog (@"data received is %@", sender);
} 

1 个答案:

答案 0 :(得分:0)

也许你可以用信息初始化viewController,例如,你可以有一行如下:

UIViewController *view5 = [[showTableViewController alloc]  initWithSomeInfo: (the structure that houses the data)];

然后在showTableViewController的自定义init方法中,您可以在推送视图控制器之前处理数据。

我希望这有帮助, 噬细胞

以下是您正在寻找的一些代码: 在showTableViewController中,您有一个变量来保存传入的信息:

    - (id)initWithSomeInfo(NSArray*)info{ 
self = [super init]; 
if(self){
myOwnVariable = info; 
[self processInfo:myOwnVariable];
}
return self;
}