我是iPhone开发的新手。使用导航栏时,如何从View2到View1携带字符串值。我在将字符串值从view1到view2到view3到........通过使用PushViewController毫无问题没有问题,但是当我使用导航栏的后退按钮回到先前的视图时,我无法保持字符串值。我需要您的帮助来解决此问题。

提前致谢

有帮助吗?

解决方案

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

像:要推的课程。

@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

希望这可以帮助。

其他提示

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

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

  2. 您可以通过ParentViewController属性到达上一个视图控制器(即将当前控制器推向导航堆栈的控制器): self.parentViewController

  3. 您可以使用委托模式,在该模式下,以前的(父)视图控制器将是当前(儿童)控制器的委托。

  4. 您可以保留对父控制器中子控制器的参考(保留)。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top