Метка не отображает текст

#ios #objective-c #xcode #uitableview #uilabel

#iOS #objective-c #xcode #uitableview #uilabel

Вопрос:

Когда я запускаю свое приложение, нажимаю на ячейку в моем RootViewController ( AufnahmeIstTableViewController ), он открывает мой DetailViewController ( AufnahmeISTDetailTableViewController ).Когда я затем нажимаю на ячейку, она должна открыть третий ViewController ( AufnahmeIstDetailDetailViewController ). Мое приложение работает, как в этом руководстве: http://www.youtube.com/watch?v=99Ssk1-HUq4

Но когда я нажимаю на ячейку и открываю свой третий вид, метки на моем третьем контроллере представления не отображают текст, как указано в коде.

Что я должен изменить? Вот все мои файлы:

Вот мой файл AufnahmeIstTableViewController.h:

 #import <UIKit/UIKit.h>

@interface AufnahmeIstTableViewController : UITableViewController

@property (strong, nonatomic) NSMutableArray *categoryArray;
@end
  

Вот мой файл AufnahmeIstTableViewController.m:

 #import "AufnahmeIstTableViewController.h"
#import "AufnahmeISTDetailTableViewController.h"

@interface AufnahmeIstTableViewController ()

@end

@implementation AufnahmeIstTableViewController
@synthesize categoryArray;


-(NSMutableArray *)categoryArray
{
    if (!categoryArray)

    {
        categoryArray = [[NSMutableArray alloc]init];
    }
    return categoryArray;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.categoryArray addObject:@"Gesetze"];
    [self.categoryArray addObject:@"Verordnungen"];
    [self.categoryArray addObject:@"Technische Regeln"];
    [self.categoryArray addObject:@"Berufsgenossenschaft"];
    [self.categoryArray addObject:@"Management"];
    [self.categoryArray addObject:@"Personal"];
    [self.categoryArray addObject:@"Vertrieb"];
    [self.categoryArray addObject:@"Kunden"];
    [self.categoryArray addObject:@"Lieferanten"];
    [self.categoryArray addObject:@"Arbeitsumgebung"];
    [self.categoryArray addObject:@"Produktion"];
    [self.categoryArray addObject:@"Produkte"];
    [self.categoryArray addObject:@"Messmittel"];
    [self.categoryArray addObject:@"Informationssicherheit"];
    [self.categoryArray addObject:@"Rechnungswesen"];
    [self.categoryArray addObject:@"Dritte"];

    [self setTitle:@"Ist-Aufnahme"];


    // Uncomment the following line to preserve selection between presentations.
    // self.clearsSelectionOnViewWillAppear = NO;

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    // self.navigationItem.rightBarButtonItem = self.editButtonItem;
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{

    // Return the number of sections.
    return 1;
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // Return the number of rows in the section.
    return self.categoryArray.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    cell.textLabel.text = self.categoryArray [indexPath.row];

    return cell;
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    AufnahmeISTDetailTableViewController *categories = [[AufnahmeISTDetailTableViewController alloc]init];

    if ([[self.categoryArray objectAtIndex:indexPath.row] isEqual:@"Gesetze"])
        categories.istAufnahmeInt = 0;

    if ([[self.categoryArray objectAtIndex:indexPath.row] isEqual:@"Verordnungen"])
        categories.istAufnahmeInt = 1;

    if ([[self.categoryArray objectAtIndex:indexPath.row] isEqual:@"Technische Regeln"])
        categories.istAufnahmeInt = 2;

    if ([[self.categoryArray objectAtIndex:indexPath.row] isEqual:@"Berufsgenossenschaft"])
        categories.istAufnahmeInt = 3;

    if ([[self.categoryArray objectAtIndex:indexPath.row] isEqual:@"Management"])
        categories.istAufnahmeInt = 4;

    if ([[self.categoryArray objectAtIndex:indexPath.row] isEqual:@"Personal"])
        categories.istAufnahmeInt = 5;

    if ([[self.categoryArray objectAtIndex:indexPath.row] isEqual:@"Vertrieb"])
        categories.istAufnahmeInt = 6;

    if ([[self.categoryArray objectAtIndex:indexPath.row] isEqual:@"Kunden"])
        categories.istAufnahmeInt = 7;

    if ([[self.categoryArray objectAtIndex:indexPath.row] isEqual:@"Lieferanten"])
        categories.istAufnahmeInt = 8;

    if ([[self.categoryArray objectAtIndex:indexPath.row] isEqual:@"Arbeitsumgebung"])
        categories.istAufnahmeInt = 9;

    if ([[self.categoryArray objectAtIndex:indexPath.row] isEqual:@"Produktion"])
        categories.istAufnahmeInt = 10;

    if ([[self.categoryArray objectAtIndex:indexPath.row] isEqual:@"Produkte"])
        categories.istAufnahmeInt = 11;

    if ([[self.categoryArray objectAtIndex:indexPath.row] isEqual:@"Messmittel"])
        categories.istAufnahmeInt = 12;

    if ([[self.categoryArray objectAtIndex:indexPath.row] isEqual:@"Informationssicherheit"])
        categories.istAufnahmeInt = 13;

    if ([[self.categoryArray objectAtIndex:indexPath.row] isEqual:@"Rechnungswesen"])
        categories.istAufnahmeInt = 14;

    if ([[self.categoryArray objectAtIndex:indexPath.row] isEqual:@"Dritte"])
        categories.istAufnahmeInt = 15;


    [categories setTitle:[self.categoryArray objectAtIndex:indexPath.row]];
        //[self.navigationController pushViewController:categories animated:YES];
     [tableView deselectRowAtIndexPath:indexPath animated:YES];
}
#pragma mark - Navigation
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"DetailView"])
{
    AufnahmeISTDetailTableViewController *controller = (AufnahmeISTDetailTableViewController *)segue.destinationViewController;
    if ([[self.categoryArray objectAtIndex:[self.tableView indexPathForSelectedRow].row] isEqual:@"Gesetze"])
        controller.istAufnahmeInt = 0;

    if ([[self.categoryArray objectAtIndex:[self.tableView indexPathForSelectedRow].row] isEqual:@"Verordnungen"])
        controller.istAufnahmeInt = 1;

    if ([[self.categoryArray objectAtIndex:[self.tableView indexPathForSelectedRow].row] isEqual:@"Technische Regeln"])
        controller.istAufnahmeInt = 2;

    if ([[self.categoryArray objectAtIndex:[self.tableView indexPathForSelectedRow].row] isEqual:@"Berufsgenossenschaft"])
        controller.istAufnahmeInt = 3;

    if ([[self.categoryArray objectAtIndex:[self.tableView indexPathForSelectedRow].row] isEqual:@"Management"])
        controller.istAufnahmeInt = 4;

    if ([[self.categoryArray objectAtIndex:[self.tableView indexPathForSelectedRow].row] isEqual:@"Personal"])
        controller.istAufnahmeInt = 5;

    if ([[self.categoryArray objectAtIndex:[self.tableView indexPathForSelectedRow].row] isEqual:@"Vertrieb"])
        controller.istAufnahmeInt = 6;

    if ([[self.categoryArray objectAtIndex:[self.tableView indexPathForSelectedRow].row] isEqual:@"Kunden"])
        controller.istAufnahmeInt = 7;

    if ([[self.categoryArray objectAtIndex:[self.tableView indexPathForSelectedRow].row] isEqual:@"Lieferanten"])
        controller.istAufnahmeInt = 8;

    if ([[self.categoryArray objectAtIndex:[self.tableView indexPathForSelectedRow].row] isEqual:@"Arbeitsumgebung"])
        controller.istAufnahmeInt = 9;

    if ([[self.categoryArray objectAtIndex:[self.tableView indexPathForSelectedRow].row] isEqual:@"Produktion"])
        controller.istAufnahmeInt = 10;

    if ([[self.categoryArray objectAtIndex:[self.tableView indexPathForSelectedRow].row] isEqual:@"Produkte"])
        controller.istAufnahmeInt = 11;

    if ([[self.categoryArray objectAtIndex:[self.tableView indexPathForSelectedRow].row] isEqual:@"Messmittel"])
        controller.istAufnahmeInt = 12;

    if ([[self.categoryArray objectAtIndex:[self.tableView indexPathForSelectedRow].row] isEqual:@"Informationssicherheit"])
        controller.istAufnahmeInt = 13;

    if ([[self.categoryArray objectAtIndex:[self.tableView indexPathForSelectedRow].row] isEqual:@"Rechnungswesen"])
        controller.istAufnahmeInt = 14;

    if ([[self.categoryArray objectAtIndex:[self.tableView indexPathForSelectedRow].row] isEqual:@"Dritte"])
        controller.istAufnahmeInt = 15;

    [controller setTitle:[self.categoryArray objectAtIndex:[self.tableView indexPathForSelectedRow].row]];
}
}


@end
  

Вот мой файл AufnahmeISTDetailTableViewController.h:

 #import <UIKit/UIKit.h>
#import "AufnahmeIstTableViewController.h"
#import "AufnahmeIstDetailDetailViewController.h"

@interface AufnahmeISTDetailTableViewController : UITableViewController {
    NSMutableArray *gesetzeArray;
    NSMutableArray *verordnungenArray;
    NSMutableArray *technischeregelnArray;
    NSMutableArray *berufsgenossenschaftArray;
    NSMutableArray *managementArray;
    NSMutableArray *personalArray;
    NSMutableArray *vertriebArray;
    NSMutableArray *kundenArray;
    NSMutableArray *lieferantenArray;
    NSMutableArray *arbeitsumgebungArray;
    NSMutableArray *produktionArray;
    NSMutableArray *produkteArray;
    NSMutableArray *messmittelArray;
    NSMutableArray *informationssicherheitArray;
    NSMutableArray *rechnungswesenArray;
    NSMutableArray *dritteArray;


}
@property int istAufnahmeInt;
@property AufnahmeIstTableViewController *categories;

-(void)makeData;


@end
  

И вот мой файл AufnahmeISTDetailTableViewController.m:

 #import "AufnahmeISTDetailTableViewController.h"
#import "AufnahmeIstTableViewController.h"
#import "AufnahmeIstDetailDetailViewController.h"

@interface AufnahmeISTDetailTableViewController ()

@end

@implementation AufnahmeISTDetailTableViewController
@synthesize istAufnahmeInt;
@synthesize categories;


- (id)initWithStyle:(UITableViewStyle)style
{
    self = [super initWithStyle:style];
    if (self) {
        // Custom initialization
    }
    return self;
}


- (void)viewDidLoad
{
    [super viewDidLoad];

        // Uncomment the following line to preserve selection between presentations.
    // self.clearsSelectionOnViewWillAppear = NO;

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    // self.navigationItem.rightBarButtonItem = self.editButtonItem;
    [self makeData];

}
-(void)makeData
{
    gesetzeArray = [[NSMutableArray alloc]init];
    verordnungenArray = [[NSMutableArray alloc]init];
    technischeregelnArray = [[NSMutableArray alloc]init];
    berufsgenossenschaftArray= [[NSMutableArray alloc]init];
    managementArray= [[NSMutableArray alloc]init];
    personalArray= [[NSMutableArray alloc]init];
    vertriebArray= [[NSMutableArray alloc]init];
    kundenArray= [[NSMutableArray alloc]init];
    lieferantenArray= [[NSMutableArray alloc]init];
    arbeitsumgebungArray= [[NSMutableArray alloc]init];
    produktionArray= [[NSMutableArray alloc]init];
    produkteArray= [[NSMutableArray alloc]init];
    messmittelArray= [[NSMutableArray alloc]init];
    informationssicherheitArray= [[NSMutableArray alloc]init];
    rechnungswesenArray= [[NSMutableArray alloc]init];
    dritteArray= [[NSMutableArray alloc]init];

    //Gesetze
        [gesetzeArray addObject:[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"Bundesdatenschutzgesetz",@"name",@"Bundesdatenschutzgesetz wurde gedrückt", @"description", nil]];

    //Verordnungen
        [verordnungenArray addObject:[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"Verordnung zur arbeitsmedizinischen Vorsorge – ArbMedVV",@"name",@"Verordnung zur arbeitsmedizinischen Vorsorge – ArbMedVV wurde gedrückt",@"description", nil]];

    //Technische Regeln
        [technischeregelnArray addObject:[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"Technische Regeln",@"name",@"Technische Regeln wurde gedrückt", @"description", nil]];
    //Berufsgenossenschaft
        [berufsgenossenschaftArray addObject:[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"Berufsgenossenschaft",@"name",@"Berufsgenossenschaft wurde gedrückt", @"description", nil]];
    //Management
        [managementArray addObject:[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"Bundesdatenschutzgesetz",@"name",@"Bundesdatenschutzgesetz wurde gedrückt", @"description", nil]];
    //Personal
        [personalArray addObject:[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"Bundesdatenschutzgesetz",@"name",@"Bundesdatenschutzgesetz wurde gedrückt", @"description", nil]];
    //Vertrieb
        [vertriebArray addObject:[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"Bundesdatenschutzgesetz",@"name",@"Bundesdatenschutzgesetz wurde gedrückt", @"description", nil]];
    //Kunden
        [kundenArray addObject:[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"Bundesdatenschutzgesetz",@"name",@"Bundesdatenschutzgesetz wurde gedrückt", @"description", nil]];
    //Lieferanten
        [lieferantenArray addObject:[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"Bundesdatenschutzgesetz",@"name",@"Bundesdatenschutzgesetz wurde gedrückt", @"description", nil]];
    //Arbeitsumgebung
        [arbeitsumgebungArray addObject:[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"Bundesdatenschutzgesetz",@"name",@"Bundesdatenschutzgesetz wurde gedrückt", @"description", nil]];
    //Produktion
        [produktionArray addObject:[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"Bundesdatenschutzgesetz",@"name",@"Bundesdatenschutzgesetz wurde gedrückt", @"description", nil]];
    //Produkte
        [produkteArray addObject:[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"Bundesdatenschutzgesetz",@"name",@"Bundesdatenschutzgesetz wurde gedrückt", @"description", nil]];
    //Messmittel
        [messmittelArray addObject:[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"Bundesdatenschutzgesetz",@"name",@"Bundesdatenschutzgesetz wurde gedrückt", @"description", nil]];
    //Informationssicherheit
        [informationssicherheitArray addObject:[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"Bundesdatenschutzgesetz",@"name",@"Bundesdatenschutzgesetz wurde gedrückt", @"description", nil]];
    //Rechnungswesen
        [rechnungswesenArray addObject:[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"Bundesdatenschutzgesetz",@"name",@"Bundesdatenschutzgesetz wurde gedrückt", @"description", nil]];
    //Dritte
        [dritteArray addObject:[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"Bundesdatenschutzgesetz",@"name",@"Bundesdatenschutzgesetz wurde gedrückt", @"description", nil]];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    // Return the number of sections.
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // Return the number of rows in the section.
    if (self.istAufnahmeInt == 0)
    {
        return [gesetzeArray count];
    }
    if (self.istAufnahmeInt == 1)
    {
        return [verordnungenArray count];
    }
    if (self.istAufnahmeInt == 2)
    {
        return [technischeregelnArray count];
    }
    if (self.istAufnahmeInt == 3)
    {
        return [berufsgenossenschaftArray count];
    }
    if (self.istAufnahmeInt == 4)
    {
        return [managementArray count];
    }
    if (self.istAufnahmeInt == 5)
    {
        return [personalArray count];
    }
    if (self.istAufnahmeInt == 6)
    {
        return [vertriebArray count];
    }
    if (self.istAufnahmeInt == 7)
    {
        return [kundenArray count];
    }
    if (self.istAufnahmeInt == 8)
    {
        return [lieferantenArray count];
    }
    if (self.istAufnahmeInt == 9)
    {
        return [arbeitsumgebungArray count];
    }
    if (self.istAufnahmeInt == 10)
    {
        return [produktionArray count];
    }
    if (self.istAufnahmeInt == 11)
    {
        return [produkteArray count];
    }
    if (self.istAufnahmeInt == 12)
    {
        return [messmittelArray count];
    }
    if (self.istAufnahmeInt == 13)
    {
        return [informationssicherheitArray count];
    }
    if (self.istAufnahmeInt == 14)
    {
        return [rechnungswesenArray count];
    }
    if (self.istAufnahmeInt == 15)
    {
        return [dritteArray count];
    }
    else
    {
        return 1;
    }
    [self.tableView reloadData];

}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier1 = @"DetailCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier1 forIndexPath:indexPath];
    if (cell == nil){
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier1];
    }

    // Configure the cell...
                if (self.istAufnahmeInt == 0) cell.textLabel.text = [[gesetzeArray objectAtIndex:indexPath.row]objectForKey:@"name"];
                if (self.istAufnahmeInt == 1) cell.textLabel.text = [[verordnungenArray objectAtIndex:indexPath.row]objectForKey:@"name" ];
                if (self.istAufnahmeInt == 2) cell.textLabel.text = [[technischeregelnArray objectAtIndex:indexPath.row]objectForKey:@"name"];
                if (self.istAufnahmeInt == 3) cell.textLabel.text = [[berufsgenossenschaftArray objectAtIndex:indexPath.row]objectForKey:@"name"];
                if (self.istAufnahmeInt == 4) cell.textLabel.text = [[managementArray objectAtIndex:indexPath.row]objectForKey:@"name"];
                if (self.istAufnahmeInt == 5) cell.textLabel.text = [[personalArray objectAtIndex:indexPath.row]objectForKey:@"name"];
                if (self.istAufnahmeInt == 6) cell.textLabel.text = [[vertriebArray objectAtIndex:indexPath.row]objectForKey:@"name"];
                if (self.istAufnahmeInt == 7) cell.textLabel.text = [[kundenArray objectAtIndex:indexPath.row]objectForKey:@"name"];
                if (self.istAufnahmeInt == 8) cell.textLabel.text = [[lieferantenArray objectAtIndex:indexPath.row]objectForKey:@"name"];
                if (self.istAufnahmeInt == 9) cell.textLabel.text = [[arbeitsumgebungArray objectAtIndex:indexPath.row]objectForKey:@"name"];
                if (self.istAufnahmeInt == 10) cell.textLabel.text = [[produktionArray objectAtIndex:indexPath.row]objectForKey:@"name"];
                if (self.istAufnahmeInt == 11) cell.textLabel.text = [[produkteArray objectAtIndex:indexPath.row]objectForKey:@"name"];
                if (self.istAufnahmeInt == 12) cell.textLabel.text = [[messmittelArray objectAtIndex:indexPath.row]objectForKey:@"name"];
                if (self.istAufnahmeInt == 13) cell.textLabel.text = [[informationssicherheitArray objectAtIndex:indexPath.row]objectForKey:@"name"];
                if (self.istAufnahmeInt == 14) cell.textLabel.text = [[rechnungswesenArray objectAtIndex:indexPath.row]objectForKey:@"name"];
                if (self.istAufnahmeInt == 15) cell.textLabel.text = [[dritteArray objectAtIndex:indexPath.row]objectForKey:@"name"];


    return cell;
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    AufnahmeIstDetailDetailViewController *aufnahmeistDetail =[[AufnahmeIstDetailDetailViewController alloc]initWithNibName:@"AufnahmeIstDetailDetailViewController"  bundle:nil];

    if (istAufnahmeInt == 0)
    {
        aufnahmeistDetail.titelString = [[NSString alloc]initWithString:[[gesetzeArray objectAtIndex:indexPath.row]objectForKey:@"name"]];
        aufnahmeistDetail.title = [[gesetzeArray objectAtIndex:indexPath.row]objectForKey:@"name"];
    }

    if (istAufnahmeInt == 1)
    {
        aufnahmeistDetail.titelString = [[NSString alloc]initWithString:[[verordnungenArray objectAtIndex:indexPath.row]objectForKey:@"name"]];
        aufnahmeistDetail.title = [[verordnungenArray objectAtIndex:indexPath.row]objectForKey:@"name"];
    }

    if (istAufnahmeInt == 2)
    {
        aufnahmeistDetail.titelString = [[NSString alloc]initWithString:[[technischeregelnArray objectAtIndex:indexPath.row]objectForKey:@"name"]];
        aufnahmeistDetail.title = [[technischeregelnArray objectAtIndex:indexPath.row]objectForKey:@"name"];
    }

    if (istAufnahmeInt == 3)
    {
        aufnahmeistDetail.titelString = [[NSString alloc]initWithString:[[berufsgenossenschaftArray objectAtIndex:indexPath.row]objectForKey:@"name"]];
        aufnahmeistDetail.title = [[berufsgenossenschaftArray objectAtIndex:indexPath.row]objectForKey:@"name"];
    }

    if (istAufnahmeInt == 4)
    {
        aufnahmeistDetail.titelString = [[NSString alloc]initWithString:[[managementArray objectAtIndex:indexPath.row]objectForKey:@"name"]];
        aufnahmeistDetail.title = [[managementArray objectAtIndex:indexPath.row]objectForKey:@"name"];
    }

    if (istAufnahmeInt == 5)
    {
        aufnahmeistDetail.titelString = [[NSString alloc]initWithString:[[personalArray objectAtIndex:indexPath.row]objectForKey:@"name"]];
        aufnahmeistDetail.title = [[personalArray objectAtIndex:indexPath.row]objectForKey:@"name"];
    }

    if (istAufnahmeInt == 6)
    {
        aufnahmeistDetail.titelString = [[NSString alloc]initWithString:[[vertriebArray objectAtIndex:indexPath.row]objectForKey:@"name"]];
        aufnahmeistDetail.title = [[vertriebArray objectAtIndex:indexPath.row]objectForKey:@"name"];
    }

    if (istAufnahmeInt == 7)
    {
        aufnahmeistDetail.titelString = [[NSString alloc]initWithString:[[kundenArray objectAtIndex:indexPath.row]objectForKey:@"name"]];
        aufnahmeistDetail.title = [[kundenArray objectAtIndex:indexPath.row]objectForKey:@"name"];
    }

    if (istAufnahmeInt == 8)
    {
        aufnahmeistDetail.titelString = [[NSString alloc]initWithString:[[lieferantenArray objectAtIndex:indexPath.row]objectForKey:@"name"]];
        aufnahmeistDetail.title = [[lieferantenArray objectAtIndex:indexPath.row]objectForKey:@"name"];
    }

    if (istAufnahmeInt == 9)
    {
        aufnahmeistDetail.titelString = [[NSString alloc]initWithString:[[arbeitsumgebungArray objectAtIndex:indexPath.row]objectForKey:@"name"]];
        aufnahmeistDetail.title = [[arbeitsumgebungArray objectAtIndex:indexPath.row]objectForKey:@"name"];
    }

    if (istAufnahmeInt == 10)
    {
        aufnahmeistDetail.titelString = [[NSString alloc]initWithString:[[produktionArray objectAtIndex:indexPath.row]objectForKey:@"name"]];
        aufnahmeistDetail.title = [[produktionArray objectAtIndex:indexPath.row]objectForKey:@"name"];
    }

    if (istAufnahmeInt == 11)
    {
        aufnahmeistDetail.titelString = [[NSString alloc]initWithString:[[produkteArray objectAtIndex:indexPath.row]objectForKey:@"name"]];
        aufnahmeistDetail.title = [[produkteArray objectAtIndex:indexPath.row]objectForKey:@"name"];
    }

    if (istAufnahmeInt == 12)
    {
        aufnahmeistDetail.titelString = [[NSString alloc]initWithString:[[messmittelArray objectAtIndex:indexPath.row]objectForKey:@"name"]];
        aufnahmeistDetail.title = [[messmittelArray objectAtIndex:indexPath.row]objectForKey:@"name"];
    }

    if (istAufnahmeInt == 13)
    {
        aufnahmeistDetail.titelString = [[NSString alloc]initWithString:[[informationssicherheitArray objectAtIndex:indexPath.row]objectForKey:@"name"]];
        aufnahmeistDetail.title = [[informationssicherheitArray objectAtIndex:indexPath.row]objectForKey:@"name"];
    }

    if (istAufnahmeInt == 14)
    {
        aufnahmeistDetail.titelString = [[NSString alloc]initWithString:[[rechnungswesenArray objectAtIndex:indexPath.row]objectForKey:@"name"]];
        aufnahmeistDetail.title = [[rechnungswesenArray objectAtIndex:indexPath.row]objectForKey:@"name"];
    }

    if (istAufnahmeInt == 15)
    {
        aufnahmeistDetail.titelString = [[NSString alloc]initWithString:[[dritteArray objectAtIndex:indexPath.row]objectForKey:@"name"]];
        aufnahmeistDetail.title = [[dritteArray objectAtIndex:indexPath.row]objectForKey:@"name"];
    }


}
@end
  

Вот мой файл AufnahmeISTDetailTableViewController.h:

 #import <UIKit/UIKit.h>
#import "AufnahmeISTDetailTableViewController.h"
@interface AufnahmeIstDetailDetailViewController : UIViewController

{
    IBOutlet UILabel *titleLabel;
    IBOutlet UILabel *textLabel;
    NSString *titelString;
    NSString *textString;
}
@property (nonatomic, retain) NSString *titelString;
@property (nonatomic, retain) NSString *textString;


@end
  

И, наконец, вот мой файл AufnahmeISTDetailTableViewController.m:

 #import "AufnahmeIstDetailDetailViewController.h"
#import "AufnahmeISTDetailTableViewController.h"

@interface AufnahmeIstDetailDetailViewController ()

@end

@implementation AufnahmeIstDetailDetailViewController
@synthesize textString;
@synthesize titelString;

- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];


    // Do any additional setup after loading the view.
    titleLabel.text = titelString;
    textLabel.text = textString;
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end
  

Ответ №1:

Я предлагаю просто установить точки останова и убедиться, что ваш код, который устанавливает метки, на самом деле устанавливает правильные строковые значения. Если вы уверены в этом, то с вашими файлами IB должно быть что-то не так (может быть, цветной текст?).

С другой стороны, у вас ужасное количество жесткого кодирования в ваших контроллерах просмотра. Вы должны отделить свои данные от своих представлений.

Ответ №2:

Похоже, что это либо собственное приложение, либо приложение для OBI, учитывая массивы Messmittel и Lieferanten, но это выходит за рамки и не касается этого.

предложение tilo верно, если вы хотите получить доступ к контроллеру через раскадровку и перейти к нему, одновременно передавая ему объекты.

Вот что я заметил в вашем коде с самого начала AufnahmeIstTableViewController.h :

В вашем didSelectRowAtIndexPath случае вам на самом деле не нужно сверять значения со строкой, потому что ваш массив действительно содержит эти элементы, а именно «Gesetze», «Verordnungen», «Technische Regeln», «Berufsgenossenschaft» и т.д.

Итак, в принципе, вы могли бы просто:

 controller.istAufnahmeInt = [[self.tableView indexPathForSelectedRow] row];
  

Или безопаснее:

 if([self.categoriesArray count] >= [[self.tableView indexPathForSelectedRow] row])
{
    controller.istAufnahmeInt = [[self.tableView indexPathForSelectedRow] row];
}
  

Теперь в вашем prepareForSegue :

Вы в основном делаете то же самое там. Итак, что вам действительно нужно сделать, это просто:

 controller.istAufnahmeInt = categories.istAufnahmeInt;
  

Поэтому примените ту же логику для вашего второго контроллера представления к вашему третьему, используя предложение till передать ему строки.

Надеюсь, это поможет.

Комментарии:

1. не могли бы вы, пожалуйста, прислать мне код, который мне нужен, потому что я не знаю, что вставить туда, где он сделал три точки? @Unheilig

Ответ №3:

в вашем втором контроллере просмотра вы настраиваете titelString и textString на ViewController, который вы на самом деле не показываете.

Вам необходимо реализовать prepareForSegue:sender: в вашем втором контроллере представления:

 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    AufnahmeIstDetailDetailViewController *aufnahmeistDetail = [segue destinationViewController];
    int selectedRow  = [self.tableView indexPathForSelectedRow].row;

    aufnahmeistDetail.titleString = ...; // get the appropriate string based on the selected row
    aufnahmeistDetail.textString = ...;
}
  

Комментарии:

1. итак, как это должно выглядеть здесь, где вы помещаете …?

2. Получите соответствующие строки так же, как вы делали в своем tableView:didSelectRowAtIndexPath: методе (затем это может быть удалено)

3. Итак, это правильно? Это только один пример @tilo — (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)отправитель { aufnahmeistdetaildetaildetailviewcontroller *aufnahmeistDetail = [segue destinationViewController]; int selectedRow = [self.TableView indexPathForSelectedRow].row; если (istAufnahmeInt == 0) { aufnahmeistDetail.titelString = [[NSString alloc]initWithString:[[gesetzeArray objectAtIndex:selectedRow]objectForKey:@»name»]]; aufnahmeistDetail.title = [[gesetzeArray objectAtIndex:selectedRow]objectForKey:@»name»]; } }

4. Таким образом, вы получите то, что вы сделали в своем исходном коде. Однако вы не используете индекс строки, т. Е. Вы получите тот же результат, независимо от того, какую строку вы выбираете.

5. Не могли бы вы прислать мне пример того, как это должно выглядеть, пожалуйста? @tilo