2014-02-06 5 views
1

Я пытаюсь реализовать меню слайдов, где, когда вы выбираете параметр, он отправляет значение переменной во второй контроллер представления, в котором есть запрос от синтаксического анализа, который будет обновляться на основе выбранного значения из меню слайдов.Передача данных из didSelectRowAtIndexPath в другой контроллер представления ios7

Как передать переменную из didSelectRowAtIndexPath к другому контроллеру вид

menuViewController.h

@property (strong, nonatomic)NSString *passVariable; 

menuViewController.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

NSString *identifier = [NSString stringWithFormat:@"%@", [self.menu objectAtIndex:indexPath.row]]; 

UIViewController *newTopViewController = [self.storyboard instantiateViewControllerWithIdentifier:identifier]; 
    _passVariable = @"FieldName"; 


[self.slidingViewController anchorTopViewOffScreenTo:ECRight animations:nil onComplete:^{ 
    CGRect frame = self.slidingViewController.topViewController.view.frame; 
    self.slidingViewController.topViewController = newTopViewController; 
    self.slidingViewController.topViewController.view.frame = frame; 
    [self.slidingViewController resetTopView]; 
}]; 

} 

SecondViewController.m

NSString *vName = MenuViewViewController.passVariable; 

попробовал это, но passVariable не работает в secondViewController.m.

+0

Чтобы быть понятным, этот метод «didSelectRowAtIndexPath» находится в MenuViewController? Кроме того, этот «newTopViewController» является «SecondViewController»? – Shabib

+0

Да, это в меню vie controller, а newTopViewController не является вторым контроллером – mugunthan

ответ

3

Вы хотите «нажимать» объекты на следующий диспетчер представлений, а не вытаскивать их из предыдущего viewController.

создать в вашем SecondViewController в @property (copy, nonatomic) NSString *fieldName; и использовать это:

SecondViewController *newTopViewController = [self.storyboard instantiateViewControllerWithIdentifier:identifier]; 
newTopViewController.fieldName = @"FieldName"; 
+0

Мне нужно объявить идентификатор, получить ошибку «использование незаявленного идентификатора» – mugunthan

0

Две возможности, как я вижу:

1) Попробуйте использовать Singleton подход: (если возможно и необходимо)

В menuViewController :

[Singleton sharedInstance].passVariable = @"yourValue here" 

В secondViewController под viewDidLoad:

someProperty = [Singleton sharedInstance].passVariable; 

2) Попробуйте, сделав недвижимость в secondViewController:

@property (nonatomic, copy) NSString * passVariable; 

синтезировать:

@synthesize passVariable; 

Сейчас в menuViewController написать как:

SecondViewController *newTopViewController = (SecondViewController*)[self.storyboard instantiateViewControllerWithIdentifier:identifier]; 

newTopViewController.passVariable = @"yourValue here"; 
+0

по второму варианту, passVariable не отображается как опция, сохраняет говоря, что нет ничего, называемого переменной pass – mugunthan

+0

, переданной в соответствующий экземпляр контроллера – NeverHopeless

+0

Я добавил его в файл .h, но он по-прежнему не отображается как опция, когда я добавляю имя контроллера представления с синтаксисом точки – mugunthan

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