2011-11-26 70 views
0

我是iphone開發新手,我使用表視圖列出學生的名字,我想要做的是我想獲得用戶按下的單元格的行號,目前我可以在didSelectRowAtIndexPath方法獲得單元的名稱(字符串),從表格視圖得到行號

//代碼

//這裏是一個字符串,它工作正常

obj.name=[obj.studentname objectAtIndex:indexPath.row]; 

//如果我的obj.name嘗試obj.num,其中num是nsinteger。我得到類型的錯誤dnt理解

obj.num=[[obj.studentname objectAtIndex:indexPath.row]count]; 

我甚至試過 但我無法獲得數字。例如,如果faizan位於第12個單元格。我想要做的是什麼,是保存12多項,並顯示在下一視圖label.i不能把它變 感謝您的幫助提前

回答

6

didSelectRowAtIndexPath保存行號用戶按下

int rowNumber = indexPath.row; 
+0

但比如何從一個視圖到另一個視圖 –

+0

這就是我想要把它,obj。num,其中num是一個nsinteger –

+1

將rowNumber作爲屬性,然後可以在另一個視圖中使用它。 – Aravindhan

3

我真的不明白你想要做什麼。你的問題是「如何讓小區內的用戶按下的行號」,這你已經做:

indexPath.row 

至於這個非常奇怪的代碼:

obj.num=[[obj.studentname objectAtIndex:indexPath.row]count]; 

你似乎從數組中獲取名稱(作爲字符串),然後嘗試對該字符串進行「計數」,這是您無法做到的。你可以得到它的長度:

[[obj.studentname objectAtIndex:indexPath.row]length]; 

但是,這不是你問什麼 - 你問什麼,你已經在表達式中使用!

+0

我的不好,關於數。正如我所說我想要得到行號,如解釋「如果faizan是在12單元格,如果用戶按它比我應該得到12」 –

+0

這只是indexPath.row正如我所說的。 – tarmes

0

@Trisha & @tarmes都是正確的。也許我可以爲你清楚。 :)

作爲您給出的示例,我認爲obj是您另一個視圖的對象,並且您想要設置名稱&範圍的數量,對不對?

在你.h文件,不要忘記:

@property (nonatomic, copy) NSString * name; 
@property (nonatomic, assign) NSInteger num; 

然後在其他視圖控制器使用它:

obj.name=[obj.studentname objectAtIndex:indexPath.row]; 
obj.num =[indexPath row] + 1; // if faizan lies on 12th cell, it saved 12([index cell]=11) in obj.num 

你可以用INT對待NSInteger的一樣,見下文NSInteger的的聲明:

#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64 
    typedef long NSInteger; 
    typedef unsigned long NSUInteger; 
#else 
    typedef int NSInteger; 
    typedef unsigned int NSUInteger; 
#endif 
0

使用此代碼找到選定的索引。

- (void)didSelectObject:(id)object atIndexPath:(NSIndexPath*)indexPath 
    { 
     int idx=indexPath.row; 
     NSLog(@"Selected cell index:%i",idx); 
    }