Как сохранить значение в detailtexlabel tableviewcontroller, введя значение в текстовое поле другого uiviewcontroller? - PullRequest
0 голосов
/ 27 июля 2011

У меня есть приложение, в котором у меня есть 2 контроллера, один из которых является viewcontroller, который состоит из текстового поля, а другой - контроллер табличного представления.Когда я ввожу любое значение в текстовое поле uiviewcontroller и возвращаюсь, используя элемент кнопки панели навигации, это значение должно быть сохранено в теге detail моего предыдущего tableviewcontroller.

Ответы [ 4 ]

1 голос
/ 27 июля 2011

Сделать свойство в классе appDelegate

appDelegateview.h

    NSString *text;

    @property (nonatomic,retain) NSString *text;


AppDelegateview.h.m 

    @synthesize text

in viewWillDisappear of view.m

  yourAppDelegateClass *obj=(yourAppDelegateClass *)[[UIApplication sharedApplication] delegate];

  obj.text=@"your value";

in tableViewController.m


in cellForRowAtIndexPath:

yourAppDelegateClass *obj=(yourAppDelegateClass *)[[UIApplication sharedApplication] delegate];
cell.detailTextLabel.text=obj.text;
0 голосов
/ 27 июля 2011

Это довольно просто. Объявите объект NSString в вашем файле TableViewController.h следующим образом:

@interface TableViewController.h {

NSString *detailTxt; }

Не забудьте сохранить и синтезировать его.

Теперь откройте другой ViewController, который содержит TextBox. Для этого создайте объект TableViewController следующим образом:

TableViewController *nextController = [[TableViewController alloc] initWithNibName@"TableViewController" bundle:nil];

Теперь у вас есть доступ к вашим TableViewController объектам. Вы можете просто вызвать строку, которую вы объявили в TableViewController.h, и назначить текст в TextBox.

nextController.detailTxt = YourTextBoxName.Text;

Теперь вернитесь к вашему TableViewController и присвойте текст в строке detailTxt вашей cell.detailTextLabel. Надеюсь, это поможет.

Счастливого кодирования!

0 голосов
/ 27 июля 2011

Используйте для этого метод делегата. Отправьте обратно значение (значение текстового поля) первому контроллеру представления (который содержит представление таблицы) с помощью метода делегата.

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

Обновление источника данных при получении значения.

Перезагрузите представление таблицы в viewWillAppear первого контроллера представления.

Предварительное требование: необходимо установить значение из источника данных в detailTextLabel.

0 голосов
/ 27 июля 2011
  1. Передайте ссылку на переменное NSString в контроллер второго вида, измените его значение там, когда вы вернетесь в контроллер первого вида, вы его измените.

  2. Используйте NSUserDefaults для установки значения во втором контроллере вида. Когда вы вернетесь к первому контроллеру представления, прочитайте значение в методе viewDidAppear.

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