如何将字符串值从一个视图控制器传递到另一个视图控制器

时间:2009-11-06 07:22:35

标签: iphone objective-c

你是我对目标c的新手。我有一个登录视图控制器与.h,.m,.xib文件。 成功登录后,我需要转到第二页。

场景是这样的,我正在访问Web服务。为了验证用户,我将用户名和密码发送到Web服务,作为回报,我得到一个字符串值。 根据我需要显示第二个屏幕的字符串值的结果。 请帮忙

6 个答案:

答案 0 :(得分:2)

如果您只需传递几个值,则可以将它们作为 init 方法的参数。例如:
 

-(id)initWithUserName:(NSString *)name andPassword:(NSString *)password {
    self = [super init];
    if (nil == self) {
        return nil;
    }

    // display or store login info somewhere
    [someLabel setText:name];

    return self
}

否则,如果您想在下一个视图中使用很多值,请使用Morion的建议并单独创建一个类。

答案 1 :(得分:1)

您可以创建一个类来存储一些共享数据,并在您的应用程序委托中创建它的实例。通过这种方式,您可以在应用的任何类中使用此共享数据。

答案 2 :(得分:1)

OPNe方式是在app delegate中创建属性。每个控制器都可以通过以下方式访问appdelegate:

[[UIApplication sharedApplication] delegate]

答案 3 :(得分:1)

这是你的问题;当您从服务器获得响应时,您需要创建一个视图控制器并将该字符串放入其中吗?

在第一个视图控制器中尝试这样的事情

// Get the string from the server
NSString *string = [get string from server];

// Create the second controller
SecondViewController *controller = [[SecondViewController alloc] initWithNibName:@"nibname" bundle:nil];

// Set the text property of a label in the controller
controller.myLabel.text=string;

// Add the view to the window so we can see it
[[[[UIApplication sharedApplication] delegate] window] addSubview:controller.view];

这将创建一个新的控制器,在其中设置一个字符串并在窗口中显示它。

您需要制作一个包含UILabel的xib文件,并将其附加到第二个控制器中名为myLabel的名称,即

@interface SecondViewController {
  UILabel *myLabel;
}

@property (nonatomic, retain) IBOutlet UILabel *myLabel;

@end

希望这有帮助,

萨姆

答案 4 :(得分:0)

您无法在nib文件中显示值。

获取Standard user defaults的引用并将字符串存储在那里。然后,您可以随时随地访问该值。

答案 5 :(得分:0)

NSString *str1 = @"Apple";
NSString *str2 = @"Orange";

if([str1 isEqualToString: str2]) {

}else{

}

它会帮助你