2013-07-02 91 views
0

我正在努力做一件簡單的事情(至少我認爲它很簡單),但我無法做到!從視圖控制器發送數據到另一個

我會盡量解釋一下。

這是一個顯示信息的應用程序。當用戶在視圖中時,他可以點擊一個按鈕,該按鈕顯示popoverview,他可以在其中選擇他想知道的信息。

實際上,當用戶單擊popoverview的按鈕時,我無法創建更改我在主視圖中創建的UILabel文本的操作。

任何人有任何想法?

只爲你知道:主視圖我爲它創建了一個類,也爲popoverview創建了一個類。雖然,我在XIB文件中創建了它的設計的彈窗視圖(我不知道這是否重要,這就是爲什麼我要這樣做)。

那麼,我希望你們能夠理解我的問題。

在此先感謝。

費爾南多。

+2

我看出你是一個初學者(沒有與任何問題),但在我看來SO不是地方,你在沒有任何先前的研究的情況下直接發佈問題,我搜索了你的問題,並且有很多SO帖子可以告訴你如何去做你需要的東西。我想你應該看看他們,嘗試其中的一些,如果某些事情不能按照你的預期工作,那麼就在SO上發佈一個問題。 – danypata

+0

是的,就像你說的,我是初學者。我做了你所說的,我嘗試了很多,我對自己說:這是我的最後一槍,這就是爲什麼我在這裏發佈我的問題。但是,無論如何感謝:) –

+0

我寫了我的第一個評論作爲一個建議,它並沒有打擾我,你發佈了一個關於這個問題,如果我不喜歡這個問題,我不會回答它,但其他SO用戶贏得' t喜歡它,你會最終得到封閉的問題或downvotes;) – danypata

回答

0

剛剛創建的視圖 - 控制屬性,並從消費者(其它視圖 - 控制)訪問

+0

謝謝你,詩人 –

0

你將不得不使用委派才能看到在主視圖的變化,當你做的酥料餅內不同的動作。首先,你需要創建酥料餅的控制器頭文件中的協議:

#import <Foundation/Foundation.h> 

@class MyPopoverController; 
@protocol MyPopoverDelegate 
- (void)valueChanged:(NSString*) newVal; 
@end 

@interface MyPopoverController: UIPopoverController 

@property (weak) id<MyPopoverDelegate> delegate; 

@end 

然後在.M你實現這樣的:

- (void) someActionOccured 
    { 
     if([self.delegate respondsToSelector:@selector(valueChanged:)]){ 
      [self.delegate valueChanged:valueYouWantToSendBack]; 
     } 
    } 

請記住,在你的主類,你必須實現MyPopoverDelegate協議:

@interface MainViewController: UIViewController <MyPopoverDelegate> 

當你實例化你的酥料餅的控制器:

/* 
** inside MainViewController.m 
*/ 
// remember to assign it's delegate 
MyPopoverController *popoverController = [MyPopoverController alloc] init]; 
popoverController.delegate = self; 

而且,你必須執行協議的方法:

/* 
** inside MainViewController.m 
*/ 
- (void)valueChanged:(NSString*) newVal 
{ 
// process the string and display it where you need it 
} 
+0

天哪,謝謝你!我想嘗試一下,但它看起來並不像我想的那樣複雜。非常感謝你! –

相關問題