将数据从Controller传递到Controller B然后传递给Controller

时间:2013-11-27 10:32:05

标签: ios objective-c delegation

我从iOS开始,尝试了解委托如何传递数据。 我理解如何将数据从ControllerA传递给ControllerB。

现在将数据从ControllerA传递到Controller B再到ControllerC的最佳方法是什么。数据将完全相同。

我花了3,4个小时,无法解决这个问题。我环顾四周,找不到足够的阵型。指向样本的链接也非常有用

2 个答案:

答案 0 :(得分:-1)

首先你必须在B类中创建一个NSString,之后你可以像这样访问字符串来传递值使用这段代码:

- (IBAction) nextClass:(id) sender
{
ClassB *b = [[ClassB alloc] initWithNibName:@"ClassB" bundle:nil];

b.stringb = [NSString stringWithFormat:@"%@", put your string/array here to pass the value to next view controller];

[self.navigationController pushViewController:b animated:YES];

}

答案 1 :(得分:-1)

首先,您必须在类B中的类A和相同对象中创建一个对象,之后您可以像这样访问该对象以传递值使用此代码:

#pragma mark prepareForSegue

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{

    if ([segue.identifier isEqualToString:@"classA"])
       {
         UITabBarController *tab = [segue destinationViewController];
         classA *a= [[ClassView alloc] init];
         a = (ClassView *)[[tab customizableViewControllers]objectAtIndex:0];
         a.object = object;

     }if ([segue.identifier isEqualToString:@"classB"])
         {
           UITabBarController *tab = [segue destinationViewController];
           classB *b= [[ClassView alloc] init];
           b = (ClassView *)[[tab customizableViewControllers]objectAtIndex:0];
           b.object = object;
     }if ([segue.identifier isEqualToString:@"classC"]) 
          {
           UITabBarController *tab = [segue destinationViewController];
           classC *c= [[ClassView alloc] init];
           c = (ClassView *)[[tab customizableViewControllers]objectAtIndex:0];
           c.object = object;
      }
}