我是iPhone开发新手。使用导航栏时,如何将字符串值从view2传送到view1。
通过使用pushviewcontroller将字符串值从view1传递到view2到....我没有问题但是当我使用导航栏的Back按钮回到以前的视图时,我无法保存字符串值。
我已经看过帖子相关的这个“http://stackoverflow.com/questions/2903967/how-return-a-value-from-view2-to-view1-when-using-navigation-bar”这不是为我工作或者我做错了。
我需要你帮助解决这个问题。
提前致谢,
Nagarajan Govindarajan。
答案 0 :(得分:1)
您可以使用委托。您还可以在view1中拥有一个属性,view2可以访问并存储该字符串。代表是更好的方式。
看一下Apple的样本,了解他们如何使用代表。你提到的问题是正确的,所以我认为你只需要很好地理解它就可以调试你的实现。
答案 1 :(得分:1)
在您的项目应用中,委托类声明并定义一个字符串(exp str1)。还要分配并初始化此字符串。
在你的视图中2类inport Appdelegate类。声明它的对象如:
TestAppDelegate *appDeleg;
在class 2的viewDidLoad中定义:appDeleg = [[UIApplication sharedApplication] delegate];
现在将appDeleg.str1存储在view2中您希望在视图1中存储和使用的字符串。
在视图1中执行相同的声明并在那里使用strView1 = appDeleg.str1;
答案 2 :(得分:-1)
我建议的最佳方法是使用Data类。在Data类中声明变量并在整个过程中使用它们。这是它的工作原理:
// DataClass.h
@interface DataClass : NSObject {
NSString *str;
}
@property(nonatomic,retain)NSString *str;
+(DataClass*)getInstance;
@end
// DataClass.m
@implementation DataClass
@synthesize str;
static DataClass *instance =nil;
+(DataClass *)getInstance
{
@synchronized(self)
{
if(instance==nil)
{
instance= [DataClass new];
}
}
return instance;
}
现在在视图控制器中,您需要将此方法称为:
DataClass *obj=[DataClass getInstance];
obj.str= @"I am Global variable";
每个视图控制器都可以访问此变量。您只需要创建一个Data类的实例。