Ich schaffe einfaches Menü in meinem Demo zeigen application.Right jetzt, was ich tue, ist, ich habe eine eine MutableArray MutableMenu
namensTableview Indizierung confussion
NSArray menu = [@"menu1",@"Menu2","Menu3",@"Menu4"];
MutableMenu = [NSMutableArray alloc]initwithArray:menu];
ich gerade dieses änderbaren Array bin Anzeige in meinem standardmäßig Tableview Zelle.
In cellForRowAtIndexPath
Methode Ich bin mit statischer Indizierung wie unter Code-Schnipsel
if(indexPath.row == 0){
[self performSegueWithIdentifier:SEGUE_TO_MANAGE_TASK sender:nil];
}
if(indexPath.row == 1){
[self performSegueWithIdentifier:SEGUE_TO_MANAGE_LEAVE sender:nil];
}
Alles ist das Arbeiten groß bis now.Now ich ein Array, das ich will, die Erlaubnis überprüfen Sie zuerst in Tableview cell.For Beispiel anzuzeigen Benutzer haben nur 2 Berechtigungen von 4 Menüs. Dieser Benutzer kann nur auf menu1 und menu2 zugreifen. Ebenso unterschiedliche Benutzer unterschiedliche Berechtigungen. Dies ist mein Code, um dieses senario in viewDidLoad
.Alle zur Erhaltung adaequat
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];
Alles funktioniert gut, aber wenn Benutzer nur 3 permission.My Indizierung in didSelectRowatIndexPath
.Für Beispiel erste Benutzer haben die Erlaubnis, 4 dann geändert wird Index ist 0,1,2,3, aber wenn Benutzer 3 Erlaubnis haben, ist der Index 0,1,2.
Aber meine Frage ist, wie ich mit dieser Situation in didSelectRowatIndexPath
umgehen. Denn jedes Mal, Indizierung changed.Any Vorschlag ist, ist sehr zu begrüßen