2013-04-06 5 views
0

У меня проблема с моим проектом приложений для iOS. Я хочу передать значение моего SearchViewController в свой ResultGeneralInfoViewController. Нет ошибок или проблем, но это не работает.Передача переменной между диспетчерами просмотра

Вот мой код в моем SearchViewController.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    NSDictionary *item = [searchResults objectAtIndex:[indexPath row]]; 


    ResultGeneralInfosViewController *detailViewController = [ResultGeneralInfosViewController alloc]; 
    detailViewController.companyName = [item objectForKey:@"companyName"]; 
    NSLog([item objectForKey:@"companyName"]); 
} 

ResultGeneralInfoViewController.h

@interface ResultGeneralInfosViewController : UIViewController { 

    NSString *companyName; 
} 

@property NSString *companyName; 

@property (weak, nonatomic) IBOutlet UILabel *companyNameLabel; 

и ResultGeneralInfoViewController.m

@implementation ResultGeneralInfosViewController 

@synthesize companyName; 

//Outlets 
@synthesize companyNameLabel; 


- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 

    } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    companyNameLabel.text = self.companyName; 
} 

Есть идеи?

+1

* «Нет ошибок, но это не сработает» * кажется для меня противоречием :-) –

ответ

4

Вы не инициализирован свой ResultGeneralInfosViewController, выделяется только его. Вызовите соответствующий метод init, чтобы сначала его инициализировать. Например:

ResultGeneralInfosViewController *detailViewController = 
    [[ResultGeneralInfosViewController alloc] initWithNibName:@"NibName" bundle:nil]; 

Убедитесь, что вы установили свойство после инициализации объекта.

+0

Да, это тоже так! –

+0

Я добавил свой код в свой SearchViewController.m, но результат остается тем же :(Что такое мое имя NibName? – DerFuchs10

+0

NibName - это имя файла nib, связанного с контроллером представления, если он у вас есть. –

1

В didSelectRowAtIndexPath вы создаете экземпляр ResultGeneralInfosViewController, но вы ничего не делаете с ним. Если вы используете навигацию контроллер, то вы должны добавить

[self.navigationController pushViewController:detailViewController animated:YES]; 
Смежные вопросы