2012-05-14 3 views
0

UIMapKit 조각을 보여주는 ViewController가 있습니다. 모든 MapKit 조각은 viewDidLoad에서 처리됩니다. 또한로드 된 맵의 반경을 변경할 수있는 설정보기 컨트롤러가 있습니다.지도 키트 반경에 대한 설정보기 컨트롤러에 대한 응답으로 viewDidLoad를 호출합니다.

모달보기의 경우 LocationsMapViewController에서 호출 할 대리자를 설정했습니다. 현재 다음과 같은 작업을 수행 중입니다.

-(void) updateMapUI 
{ 
    NSLog(@"here is my update in updateMapUI"); 
    //[self initWithCoordinate:self.coordinate locations:self.locations]; 
    //[self loadView]; 
    [self viewDidLoad]; 
} 

그러나 이것은 다소 비현실적 인 것처럼 보입니다. 이 일을 더 훌륭하고 우아한 방법이 있습니까? 아니면 괜찮아? 처음으로 이런 식으로 구현하고 몇 가지 피드백을 원합니다.

들으

+0

대답은 '예'이지만 정확히 무엇을하려하는지 알아 내려고합니다. 문제를 해결할 수 있도록 도와 드리겠습니다. 내가 이해하는 것은 사용자가 일부 설정을 변경 한 다음 해당 변경 사항을 기반으로 사물을 재구성하려고한다는 것입니다. –

+0

Y - 기본적으로 다른 검색에서 지속되는지도의 확대/축소 기능입니다. MKCoordinateRegion 사용하기 region = MKCoordinateRegionMakeWithDistance (coor, vals); – timpone

답변

0

예! 이것을 직접 부르면 안됩니다. 기억해야 할 것은 의도하지 않은 결과를 초래할 수있는 슈퍼 클래스의 viewDidLoad을 호출해야한다는 것입니다. 어떻게

... 그리고

- (void) viewDidLoad { [super viewDidLoad]; [self updateMapUI]; } -(void) updateMapUI { NSLog(@"here is my update in updateMapUI"); //[self initWithCoordinate:self.coordinate locations:self.locations]; //[self loadView]; // Update your Map here } 

... 주위 전환에 대해
viewDidLoad 내에서 [self initWithCoordinate:self.coordinate locations:self.locations]를 호출하지 않는 저에게 알려주세요!

+0

아니요, 거기에 전화하지 마세요. 일어날 일을 단지 보았습니다. 다른 부분에 대한 답변을위한 thx. 이에 응답하여 [super viewDidLoad]를 다시 말하면, 호출해야하는 다른 요소가있을 가능성이 있습니까? 이것은 바닐라 MyViewController : UIViewController입니다. 논증 적이 되려고하지 않고 베스트 프랙티스에 대해 궁금해합니다. – timpone

+1

한 번 호출되는 모든 설정은 viewDidLoad에 저장됩니다. 다시 호출해야 할 수도있는 모든 것을 별도의 메소드에 넣은 다음 viewDidLoad에서 호출하고 업데이트가 트리거되는 곳마다 호출하십시오. –

관련 문제