Storyboard와 관련된 질문이 있습니다. seague를 통해 ViewA에있는 문자열의 값을 변경하고 싶습니다. 이는 ViewB가 Seague를 수행하고 ViewA에서 문자열 값을 변경하기위한 준비를해야 함을 의미합니다. 내 문제는 지금, 내 문자열의 가치가 변하지 남아있다.ios 5의 세그먼트를 통해 문자열에 액세스
ViewA.h 파일 :
@interface NewViewController : UITableViewController <MKAnnotation>
{
NSString *longString;
}
@property (weak, nonatomic) NSString *longString;
ViewB.m 파일 :
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"transmitCoordsToNew"])
{
NewViewController *controller = (NewViewController *)segue.destinationViewController;
controller.longString = [NSString stringWithFormat:@"%f", segueLong];
}
}
변수가 변경되지 않고 유지 또는 왜 내가 ViewA에서 더 운영에 어떤 변화를 볼 수없는 이유는 어떤 생각? 당신의 변수 segueLong에서 오는, 그러나 longString에 약한 참조를 갖는 가장 가능성이 문제를 일으키는 것입니다 사전에
감사합니다,
필
좋습니다. String ("longString")을 강력한 참조로 변경했지만 디버거가 (prepareForSegue 메서드 다음에 중단 점을 두는 동안) longString이 여전히 비어 있음을 보여줍니다. 나는 그것을 변경 했음에도 불구하고 아무런 이유가 없다는 것을 알지 못한다. – Phil
편집 : 기본적으로 segue가 완료되면 String이 지워진다는 것을 발견했다. – Phil
longString의 값으로 설정했다. 나는 당신이 어떤 실수도하지 않으므로, 이것이 ivar라고 가정하고 있습니다. longString의 값 (및 유형, float이어야 함)을 확인하십시오. 아마도 예상했던 것과 다를 수 있습니다. –