2014-12-30 2 views
0

У меня есть метка в моем втором контролере. Я хотел бы передать указатель кнопки с firstviewcontroller на метку secondviewcontroller. Когда я нажимаю кнопку, он идет ко второму ViewController но метка равна нулюПередача параметра от одного xib к другому xib

// FirstViewController.m

NSInteger index = [carousel indexOfItemViewOrSubview:sender]; 
int ind=index; 
SecondViewController *sVC = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:[NSBundle mainBundle]]; 
sVC.myLabel.text=[NSString stringWithFormat:@"%d",ind]; 
[self presentModalViewController:sVC animated:YES]; 

//SecondViewController.h

@property (strong, nonatomic) IBOutlet UILabel *myLabel; 

// SecondViewController .m

@synthesize myLabel; 
- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 
    NSLog(@"%@",myLabel.text); 

} 
+1

Вопрос заключается в том, что адресата просмотр и все его ссылки на IBOutlet еще не настроены. Вы должны отложить использование ссылок 'IBOutlet' до' viewDidLoad' в контроллере представления назначения. Вот почему TooManyEduardos советует создать новое свойство для хранения значения, которое может ссылаться на 'viewDidLoad'. – Rob

+1

Не связанный с вашим исходным вопросом, 'presentModalViewController' устарел в пользу' presentViewController'. Используйте только 'presentModalViewController', если вам нужно поддерживать версии iOS до 5.0. – Rob

+0

Спасибо, Роб. есть ли у вас какие-либо идеи по следующему вопросу https://stackoverflow.com/questions/27723310/icarousel-scrolling-and-speed –

ответ

2

В SecondViewController.h добавить еще одно свойство:

@property (nonatomic) NSInteger index; 

Тогда в FirstViewController.m передать значение индекса к индексу второго обзора:

NSInteger index = [carousel indexOfItemViewOrSubview:sender]; 
int ind=index; //now you don't need this 

SecondViewController *sVC = [[SecondViewController alloc]  initWithNibName:@"SecondViewController" bundle:[NSBundle mainBundle]]; 
sVC.myLabel.text=[NSString stringWithFormat:@"%d",ind]; 

// New line 
sVC.index = index; 

[self presentModalViewController:sVC animated:YES]; 
+0

Спасибо, это работает! Дело только в том, что он должен следовать индексу @property (nonatomic) NSInteger *, иначе он возвращает ошибку. –

+1

Прохладный. Может захотеть отметить его как ответ, чтобы он мог помочь другим людям в будущем. – TooManyEduardos

+0

SOF не позволяет мне принять сейчас, я должен подождать еще 4 минуты, чтобы отметить –

Смежные вопросы