#objective-c #uitableview #uibutton #ios7.1
#цель-c #uitableview uitableview #uibutton #ios7.1
Вопрос:
Когда пользователь выбирает кнопку выбора местоположения, затем запускается переход к следующему UIViewController TableView в TableView, если пользователь выбирает didSelectRow, заголовок заголовка select pick locationbutton должен был измениться на выбранный пользователем адрес
пожалуйста, помогите мне, как преодолеть
Комментарии:
1. Итак, у вас есть UITableView, который отправляет вас к следующему UIViewController при выборе строки? А название следующего UIViewController не подходит?
2. не заголовок представления, я хочу заголовок кнопки в firstviewcontroller
3. Итак, вы хотите отправить заголовок кнопки первого представления во второе представление?
4. нет значения didselectrow, т.е. некоторой строки для заголовка текста кнопки
5. Для этого вы можете использовать протокол. создайте протокол второго класса. Из метода didselectrow запускает метод протокола с передачей текста строки выбора (для заголовка кнопки), определение которого находится в классе first. теперь вы можете изменить заголовок кнопки.
Ответ №1:
В вашем следующем контроллере представления добавьте свойство:
@property (strong, nonatomic) UIViewController *formerViewController;
и в вашем первом контроллере представления добавьте это:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
YourNextViewController *nextViewController = segue.destinationViewController;
nextViewController.formerViewController = self;
}
Таким образом, вы можете вызвать свой первый контроллер представления в следующем контроллере представления через formerViewController
свойство.
И, конечно, есть несколько гораздо более сложных способов, таких как KVO и NotificationCenter.
Комментарии:
1. и firstviewcontroller находится в раскадровке, второй находится в xib, когда я пытаюсь инициализировать класс xib в моей раскадровке, он показывает ошибку
Ответ №2:
In your next view controller, add a property:
@property (strong, nonatomic) UIViewController *formerViewController;
and in your first view controller, add this:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
YourNextViewController *nextViewController = segue.destinationViewController;
nextViewController.formerViewController = self;
}
@class formerViewController;