РЕШЕНИЕ НИЖЕ - Не совсем та проблема, о которой я думал.
Я добавляю данные в контроллер представления, в который выполняется переход, используя prepareForSegue: sender:, но моя проблема в том, что если данныеустановить с помощью свойства, то это свойство не изменяется.Однако я могу использовать приватную переменную контроллера представления назначения, установленную с помощью функции, созданной для этой цели.
Вот код, который работает:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"showLocationDetail"]) {
CityGuideFlipsideViewController *flipside = [segue destinationViewController];
CityGuideAnnotation *senderAnnotation = (CityGuideAnnotation *)sender;
[flipside annotate:senderAnnotation]; // why?
}
}
Это кажется гораздо более естественнымТем не менее, использовать flipside.annotate = senderAnnotation
, чем [flipside annotate:senderAnnotation]
.
Конечно, я должен делать что-то очевидное здесь, но я не могу определить это.
РЕДАКТИРОВАТЬ, чтобы более четко указать случай неудачи:
// CityGuideFlipsideViewController.h
@interface CityGuideFlipsideViewController : UIViewController {
CityGuideAnnotation *annotation;
}
@property (strong, nonatomic) CityGuideAnnotation *annotation;
// CityGuideFlipsideViewController.m
@synthesize annotation;
- (void)setAnnotation:(CityGuideAnnotation *)_annotation
{
annotation = _annotation;
}
// CityGuideMainViewController.m (in prepareForSegue:sender)
CityGuideFlipsideViewController *flipside = [segue destinationViewController];
CityGuideAnnotation *senderAnnotation = (CityGuideAnnotation *)sender;
flipside.annotation = senderAnnotation;
При достижениистрока, присваивающая flipside.annotation в качестве senderAnnotation, значение senderAnnotation является правильным.flipside.annotation до назначения ноль.После этой строки senderAnnotation не изменяется, flipside.annotation не изменяется.
НО, достигая CityGuideFlipsideViewController viewDidLoad У меня есть NSLog(@"%@",annotation.title)
, который выдает правильное значение, даже если отладчик по-прежнему показывает мне ноль для аннотации.
Так что я действительно не уверен, что у меня ранее была какая-то небольшая ошибка, если все время меня обманывали annotation CityGuideAnnotation * 0x00000000
в отладчике.
Извините, и спасибо тем, кто помог.