2016-03-25 34 views
2

我創建簡單的菜單顯示在我的演示application.Right現在我在做什麼是我一個MutableArray名爲MutableMenu的tableview索引confussion

NSArray menu = [@"menu1",@"Menu2","Menu3",@"Menu4"]; 
MutableMenu = [NSMutableArray alloc]initwithArray:menu]; 

我只是默認的tableview顯示在我的這個可變數組細胞。

cellForRowAtIndexPath方法,我用靜態的索引如下面的代碼片段

if(indexPath.row == 0){ 
     [self performSegueWithIdentifier:SEGUE_TO_MANAGE_TASK sender:nil]; 
    } 
    if(indexPath.row == 1){ 
     [self performSegueWithIdentifier:SEGUE_TO_MANAGE_LEAVE sender:nil]; 
    } 

所有被直到now.Now我有我想要檢查權限在tableview中cell.For例如第一顯示陣列工作的偉大用戶只有4個菜單中的2個權限。該用戶只能訪問menu1和menu2。同樣不同的用戶有不同的權限。 這是我的代碼來維護此塞納里奧在viewDidLoad。所有工作正常

BOOL permisson = NO; 
NSArray *Roles = [USERDEFAULT objectForKey:PREF_ROLE_ARRAY]; 
for (NSString *temp in Roles) { 
    if ([temp isEqualToString:@"55"] || [temp isEqualToString:@"45"] || [temp isEqualToString:@"67"]) { 
     permisson = YES; 
     if ([Mutablemenu containsObject:@"Team management"]) 
      NSLog(@"Already Have"); 
     else [Mutablemenu insertObject:@"Team management" atIndex:2]; 
     } 
} 
if (!permisson) { 
    [Mutablemenu removeObject:@"Team management"]; 
    [Mutablemenu insertObject:@"" atIndex:2]; 
    [MutableImages removeObject:@"team.png"]; 
} 
[_tableview reloadData]; 

所有工作正常,但是當用戶只有3 permission.My索引在didSelectRowatIndexPath。比如第一個用戶改變有4個許可,則索引是0,1,2,3,但是當用戶有3個權限時索引是0,1,2。

但我的問題是我如何處理didSelectRowatIndexPath這種情況。因爲每一次的索引是changed.Any的建議是非常值得歡迎

回答

0

至於說通過@RJV庫馬爾,你應該檢查實際的菜單點擊,而不是indexPathdidSelectRowatIndexPath爲:

if([menuArray[indexPath.row] isEqualToString: @"Menu1"]){ 
    [self performSegueWithIdentifier:SEGUE_TO_HANDLE_MENU_1 sender:nil]; 
} 
else if([menuArray[indexPath.row] isEqualToString: @"Menu2"]){ 
    [self performSegueWithIdentifier:SEGUE_TO_HANDLE_MENU_2 sender:nil]; 
} 
. 
. 
so on... 
0

按我的理解,您可以根據指數發現的菜單,但你不應該做這樣的,

,而不是維持MENUID或menuname來識別用戶選擇哪個菜單。通過這種方式,您不必擔心索引。

didselectRow方法,通過比較菜單ID或MENUNAME,做你的操作