Zugriff auf Nagios CGI

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Weitere kurze Frage... Ich habe einen Table View Controller, in welchem ich Daten abfrage, in ein Array speichere und danach in die Zellen schreibe. Wenn ich jetzt eine Fall Unterscheidung haben möchte, sprich in Step 1 bekomme ich Werte (Status Informationen) und will je nach Status farbig markieren, was muss ich dann vom Aufbau ändern? Derzeit kann es ja nicht funktionieren, da ich in Step 1 meine Daten sammel und in Step 2 meine Daten in die Zellen schreibe. Ich müsste eigentlich 1 Datensatz sammeln, 1 Datensatz schreiben, 1 Datensatz sammeln, 1 Datensatz schreiben etc. um den jeweiligen Zustand mit einfließen zu lassen. Ansonsten habe ich immer nur den letzten Wert, welcher beim einsammeln geschrieben wurde.

    Gibt es für diesen Fall einen typischen Weg oder denke ich einfach gerade nach 11 Std. Arbeit nicht mehr wirklich gut nach? ;)

    Danke!
  • Hab mich vielleicht etwas blöd ausgedrückt.

    Brainfuck-Quellcode

    1. - (void)viewDidLoad
    2. {
    3. .........
    4. if([serviceName length]>1 && [serviceState length]>1) {
    5. [self.HostDetailTableData addObject:serviceName];
    6. NSLog(@"debug: %@", serviceState);
    7. serviceStateCell = serviceState;
    8. }


    Quellcode

    1. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    2. {
    3. UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ChecksCell"];
    4. NSString *check = [self.HostDetailTableData objectAtIndex:indexPath.row];
    5. cell.textLabel.text = check;
    6. // Configure the cell...
    7. cell.backgroundColor = [UIColor whiteColor];
    8. NSLog(@"debug2: %@", serviceStateCell);
    9. if([serviceStateCell isEqualToString:@"OK"])
    10. {
    11. cell.backgroundColor = [UIColor whiteColor];
    12. }
    13. else if([serviceStateCell isEqualToString:@"WARNING"])
    14. {
    15. cell.backgroundColor = [UIColor grayColor];
    16. }
    17. return cell;
    18. }
    Alles anzeigen


    So war mein erster Schnellschuss, der natürlich nicht funktionieren kann.

    Ich sammle Host-Systeme und frage in diesem Zug direkt den Status dazu ab, das in die Zellen schreiben erfolgt ja aber in einer anderen Methode. Siehe Code...
  • Okay... Ergibt Sinn... Aber, müsste er mit dem Befehl nicht "(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath" neu Aufrufen? Das tut er nämlich leider nicht, es passiert gar nichts bei dem Befehl, er meckert aber auch nicht rum das dieser falsch ist. Oder muss ich dann eine neue Methode die auf reloadData wartet einpflegen?
  • Quellcode

    1. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    und

    Quellcode

    1. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    werden beim reload aufgerufen.
    Eine extra Methode brauchst du da nicht
  • Kann es sein, dass ich in einem Table View Controller keine einzelnen Zellen farbig markieren?

    Ein tableView.backgroundColor = [UIColor greenColor]; funktioniert, im Gegensatz zu cell.backgroundColor = [UIColor redColor];

    Gibt es dafür einen logischen Grund?
  • macmoonshine schrieb:

    Zur Not geht es über einen Background-View pro Zelle.


    Jop, aber auch einzelne Zellen kann man einfärben.


    Doku:

    Note: If you want to change the background color of a cell (by setting the background color of a cell via the backgroundColor property declared by UIView) you must do it in the tableView:willDisplayCell:forRowAtIndexPath: method of the delegate and not in tableView:cellForRowAtIndexPath: of the data source. Changes to the background colors of cells in a group-style table view has an effect in iOS 3.0 that is different than previous versions of the operating system. It now affects the area inside the rounded rectangle instead of the area outside of it.
  • Alles klar, der Tip von matz hat geholfen, habe die Methode hinzugefügt und dort kann ich die Farbe der Zelle setzen.

    Allerdings funktioniert der Aufruf von [self.tableView reloadData]; bisher nicht die Bohne... Werde mir das aber erst morgen weiter anschauen, vielleicht bin ich gerade auch nur zu blind, momentan bewirkt dieser Befehl gar nichts, ich hab überall debug Meldungen ausgegeben etc. und beim ausführen passiert leider bisher nichts... :(

    PS: Super Forum, ist echt klasse wie hier geholfen wird!