2009-11-06 169 views
2

嗨,我是新的目標c。我有一個登錄視圖控制器與.h,.m,.xib文件。 和成功登錄後,我需要轉到第二頁。如何將字符串值從一個視圖控制器傳遞到另一個視圖控制器

這種情況是,我正在訪問Web服務。爲了驗證用戶,我將用戶名和密碼發送到Web服務,並作爲回報,我得到一個字符串值。 基於字符串值的結果,我需要顯示第二個屏幕。 請幫忙

+0

我試着創建一個新的共享類。它爲我創建了2個文件shared.h和shared.m現在我將我的字符串值放在shared.h文件中並保存該文件。 shared.h文件有NSMutableString * soapresult; 現在在我的登錄視圖控制器中看起來像。 @class SecondView #import @inteface LoginView:UIViewController { // username textfield; //密碼 //登錄按鈕 Shared * sharedObject; } 現在在登錄view.m文件我嘗試使用該字符串作爲sharedObject.soapResults。但我得到錯誤。請幫忙 – shreedevi 2009-11-06 08:04:08

回答

1

您可以創建一個類來存儲一些共享數據,並在您的應用程序委託中創建它的一個實例。通過這種方式,您可以在任何應用程序類中使用此共享數據。

+0

你能否給我提供示例代碼.. – shreedevi 2009-11-06 12:06:23

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 
} 

否則,如果你有很多你想在未來的視圖中使用去莫里恩的意見,並進行單獨的階級的價值觀。

+0

通過查看一些發佈的代碼,你可以用額外的NSString參數來擴展你的SecondView的init方法,就像上面的例子。 – ihuk 2009-11-06 08:19:20

+0

我仍然沒有得到你.. 我有第一個視圖controller.m,它從NSMutable String中的Web服務獲取結果值。現在我想在第二個視圖中顯示 – shreedevi 2009-11-06 12:09:31

+0

我想你的代碼中有[[SecondView alloc] init]。如果喲向我描述的init方法中添加另一個參數,則可以使用[[SecondView alloc] initWithSomething:string]將字符串值傳遞給第二個視圖。 – ihuk 2009-11-06 12:58:01

1

OPNe方法是在應用程序委託中創建屬性。每個控制器都可以通過以下方式訪問appdelegate:

[[UIApplication sharedApplication] delegate] 
0

您無法在nib文件中顯示值。

獲取對Standard user defaults的引用並將字符串存儲在那裏。然後你就可以在任何你想要的地方獲得價值。

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 

希望這有助於

山姆

+0

它不工作... – 2010-09-02 12:42:25

+0

您可能需要提供更多的信息,而不是'它不工作',否則它會幫助你:) – deanWombourne 2010-09-02 14:10:33

+0

它的工作,謝謝 – 2012-07-16 11:26:00

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

if([str1 isEqualToString: str2]) { 

}else{ 

} 

它會幫你

相關問題