使用导航栏时,如何从View2返回值
-
04-10-2019 - |
题
我是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
希望这可以帮助。
其他提示
有多种方法可以做到这一点。这里有几个:
您可以通过导航控制器的ViewControllers属性访问导航堆栈中的所有视图控制器:
self.navigationController.viewControllers
您可以通过ParentViewController属性到达上一个视图控制器(即将当前控制器推向导航堆栈的控制器):
self.parentViewController
您可以使用委托模式,在该模式下,以前的(父)视图控制器将是当前(儿童)控制器的委托。
您可以保留对父控制器中子控制器的参考(保留)。
在前3个中,子控制器将负责将数据交给父控制器。在第四次,父母将在释放孩子之前从孩子那里获取数据。
不隶属于 StackOverflow