Как вернуть значение из view2 в view1 при использовании панели навигации - PullRequest
4 голосов
/ 25 мая 2010

Я новичок в разработке для iPhone. Как я могу перенести строковое значение из view2 в view1 при использовании панели навигации. У меня нет проблем с переносом строковых значений из view1 в view2 в view3 в .... с помощью pushviewcontroller. Но когда я возвращаюсь к предыдущим представлениям с помощью кнопки Назад на панели навигации, я не могу удерживать строковые значения. Мне нужна ваша помощь в решении этой проблемы.

Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 25 мая 2010

Это легко сделать, если передать ссылку текущего класса следующему классу и изменить значения, используя эту ссылку.

Как: Класс, который нужно подтолкнуть.

@interface B:UIViewController{
   id delegate;
}
@property (nonatomic,retain) id delegate;
@end

@implementation B
@synthesize delegate;

-(void)methodA{
  [delegate setNewString2:@"Madhup"];
}

@end

Класс, из которого вы выдвигаете B:

@interface A:UIViewController{
   NSString *newString;
}
@property (nonatomic,retain)  NSString *newString;
@end


 @implementation A
 @synthesize newString
- (void)method2{
     B *newBObject = .......;
     [newBObject setDelegate:self];
     [self.navigationController pushViewCo.......];
  }
 @end

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

2 голосов
/ 25 мая 2010

Есть несколько способов сделать это. Вот некоторые из них:

  1. Вы можете получить доступ ко всем контроллерам представления в стеке навигации через свойство viewControllers контроллера навигации: self.navigationController.viewControllers

  2. Вы можете связаться с предыдущим контроллером представления (то есть с тем, который поместил текущий контроллер в стек навигации) через свойство parentViewController: self.parentViewController

  3. Вы можете использовать шаблон делегата, где предыдущий (родительский) контроллер представления будет текущим (дочерним) контроллером делегата.

  4. Вы можете сохранить (сохранить) ссылку на дочерний контроллер в родительском контроллере.

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

...