2010-07-06 57 views
0

我有一個應用程序,我的主視圖是一個tableview。每個單元格加載包含特定數據的另一個視圖。現在,每個單元格都不同,因此每個單元格加載的視圖中的數據應該不同。爲此,我需要indexPath。我爲TableView創建了一個類,爲另一個簡單的UIView創建了一個類。如何將indexPath值從一個類轉發到另一個類。如何從一個類獲取indexPath到另一個類

在此先感謝 聶

+0

你在哪裏轉發indexPath?在didSelectRowAtIndexPath中:?如果是這樣,只需將indexPath變量作爲NSIndexPath *包含在對另一個對象的調用中。 – Kalle 2010-07-06 11:33:09

+0

不,我想要另一個UIView類的indexPath值。 – Nick 2010-07-06 11:42:56

回答

2

如果我理解你的要求,你有一個TableView中(TableView1),其中每個單元負載了內容依賴於細胞的indexPath一個新的視圖(MyView1)。當你收到isSelected方法時,你不能只將indexPath傳遞給你正在創建的新視圖的構造函數嗎?例如

然後,您將需要創建自己的類MyView1從UIView的繼承,並添加構造函數接受額外的參數,並將其存儲。

如果你不創建UIView或它已經存在,那麼我不完全確定你在問什麼,所以我只是猜測。如果你問如何在UIView之間共享信息,你的問題是每個UIView都不知道另一個。

一種簡單的全局共享信息的方法是創建一個靜態類,遵循每個UIView可以訪問和修改的Singleton設計模式。

//header 
@interface MySingleton { 
    NSIndexPath* myIndexPath; 
} 
@property (nonatomic, retain) myIndexPath; 
+(id) globalSingleton; 
@end 

在源(.M)文件

//source 
static MySingleton* singleton = nil; 

@implementation MySingleton 
@synthesize myIndexPath; 

+(id) globalSingleton { 
    if (singleton == nil) { 
     singleton = [MySingleton new]; 
    } 
    return singleton; 
} 
@end 

它可能我誤解你的問題,這種解決方案可能不是解決你的問題的最佳途徑。請澄清您的界面設計,我們可以提供更多幫助。祝你好運。

- EDIT: 從你說的,第一個解決方案應該是適用的。 當你向你的TableView發送'isSelected'消息時,你應該創建WebView對象。只需簡單地覆蓋init函數即可接受所需的任何參數,在本例中爲選定表的NSIndexPath。我確信在developer.apple.com上有一些例子使用定製的UITableView和Navigation View Controller來搜索示例項目。

+0

好的。即時通訊試圖創建一個圖書館,我有與庫中的所有可能的項目的表視圖和每個庫項目移動到另一個視圖包含該項目的詳細信息。我爲TableView創建了一個類,爲DetailView創建了一個獨立的類,這是一個普通的UIWebView。問題是,爲了處理表格中的數據,我可以使用cellForRowAtIndexPath中提供的indexpath變量。但是,我需要indexpath來處理詳細視圖中的數據。以便在tableview中單擊的每個單元格僅加載與該單元格相關的數據。有點像開關盒。 – Nick 2010-07-06 11:50:17

+0

P.S.我是新手。如果我不能解釋,我也很抱歉。 – Nick 2010-07-06 11:50:46

+0

我瞭解您的解決方案,但我的UIWebView是導航控制器的一部分。所以,我使用initWithNibName用一個nib文件初始化它。 – Nick 2010-07-06 12:07:40

相關問題