4

我是 iPhone 开发的新手。使用导航栏时,如何将字符串值从 view2 传送到 view1。我可以通过使用 pushviewcontroller 从 view1 到 view2 再到 view3 来携带字符串值。我需要你的帮助来解决这个问题。

提前致谢

4

2 回答 2

3

如果将当前类的引用传递给下一个类并使用此引用更改值,则可以轻松完成此操作。

Like:要推送的类。

@interface B:UIViewController{
   id delegate;
}
@property (nonatomic,retain) id delegate;
@end

@implementation B
@synthesize delegate;

-(void)methodA{
  [delegate setNewString2:@"Madhup"];
}

@end

您从中推动 B 的班级:

@interface A:UIViewController{
   NSString *newString;
}
@property (nonatomic,retain)  NSString *newString;
@end


 @implementation A
 @synthesize newString
- (void)method2{
     B *newBObject = .......;
     [newBObject setDelegate:self];
     [self.navigationController pushViewCo.......];
  }
 @end

希望这可以帮助。

于 2010-05-25T12:12:29.897 回答
2

有不止一种方法可以做到这一点。这里有几个:

  1. 您可以通过导航控制器的 viewControllers 属性访问导航堆栈中的所有视图控制器:self.navigationController.viewControllers

  2. 您可以通过 parentViewController 属性访问前一个视图控制器(即,将当前控制器推送到导航堆栈的那个):self.parentViewController

  3. 您可以使用委托模式,其中前一个(父)视图控制器将是当前(子)控制器的委托。

  4. 您可以在父控制器中保留对子控制器的引用(保留)。

在前 3 个中,子控制器将负责将数据交给父控制器。第 4 次,父母会在发布之前从孩子那里获取数据。

于 2010-05-25T11:08:45.850 回答