我是 iPhone 开发的新手。使用导航栏时,如何将字符串值从 view2 传送到 view1。我可以通过使用 pushviewcontroller 从 view1 到 view2 再到 view3 来携带字符串值。我需要你的帮助来解决这个问题。
提前致谢
我是 iPhone 开发的新手。使用导航栏时,如何将字符串值从 view2 传送到 view1。我可以通过使用 pushviewcontroller 从 view1 到 view2 再到 view3 来携带字符串值。我需要你的帮助来解决这个问题。
提前致谢
如果将当前类的引用传递给下一个类并使用此引用更改值,则可以轻松完成此操作。
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
希望这可以帮助。
有不止一种方法可以做到这一点。这里有几个:
您可以通过导航控制器的 viewControllers 属性访问导航堆栈中的所有视图控制器:self.navigationController.viewControllers
您可以通过 parentViewController 属性访问前一个视图控制器(即,将当前控制器推送到导航堆栈的那个):self.parentViewController
您可以使用委托模式,其中前一个(父)视图控制器将是当前(子)控制器的委托。
您可以在父控制器中保留对子控制器的引用(保留)。
在前 3 个中,子控制器将负责将数据交给父控制器。第 4 次,父母会在发布之前从孩子那里获取数据。