2011-05-24 19 views
0

我是iPhone開發新手。在使用導航欄時,如何將view2中的字符串值傳遞給view1。如何在UINavigationcontroll上將view2的值返回view1

我沒有問題,從view1到view2的字符串值....通過使用pushviewcontroller但是當我回到以前的視圖使用導航欄的後退按鈕,我不能夠保存字符串值。

我已經看到帖子相關的這個「http://stackoverflow.com/questions/2903967/how-return-a-value-from-view2-to-view1-when-using-navigation-bar」,那就是沒有爲我工作或可能是我做錯了。

我需要你的幫助來解決這個問題。

在此先感謝,

Nagarajan Govindarajan。

回答

1

您可以使用委託。你也可以在view1中有一個屬性view2可以訪問和存儲字符串。代表是更好的方式。

看看蘋果的樣品,看看他們如何使用代表。你提到的問題是正確的,所以我認爲你只需要理解它就可以調試你的實現。

+0

無論如何,我得到了它...... – 2011-05-24 13:19:10

1

在您的項目應用程序委託類聲明並定義一個字符串(exp str1)。還要分配並初始化這個字符串。

在你的視圖中2類inport Appdelegate類。聲明它的對象,如:

TestAppDelegate *appDeleg; 

在2類的viewDidLoad中定義:appDeleg = [[UIApplication sharedApplication] delegate];

現在存儲appDeleg.str1 =你在視圖2串要存儲在視圖中使用1

做在視圖1中使用相同的聲明並在那裏使用strView1 = appDeleg.str1;

+0

你是否已通過我的方法或其他方法解決了問題。 – 2011-05-25 11:03:08

-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類的實例。

相關問題