2012-11-09 4 views
0

한 뷰 컨트롤러의 세그먼트 컨트롤러에서 다른 컨트롤러로 값을 전달하고 싶습니다. 이 질문에 대한 또 다른 발견,하지만 실제로 대리자 메서드를 구현하는 방법을 이해하지 못합니다. (원래의 질문 : Passing UISegmentedControl values from FlipSideViewController in an Utility application to the mainviewcontroller…)컨트롤러간에 UISegmentedControl 값 전달 ...

FlipsideViewController.h

@protocol FlipsideViewControllerDelegate; 
-(void)flipsideViewControllerSelectionChangedToIndex:(int)index; 

@interface FlipsideViewController : UIViewController { 
      id <FlipsideViewControllerDelegate> delegate; 

     IBOutlet UISegmentedControl *mapType_; 

    } 
    @property (nonatomic, retain) UISegmentedControl *mapType_; 

    @end 

MainViewController.h

@interface MainViewController : UIViewController <XXXX> { 
} 

@property (nonatomic, retain) UISegmentedControl *mapType; 

@end 

MainViewController.m 나는 MainViewController의 메서드를 호출하려면 어떻게

-(void)flipsideViewControllerSelectionChangedToIndex:(int)index { 
    if (index == 0) mapView.mapType = MKMapTypeStandard; 
    if (index == 1) mapView.mapType = MKMapTypeSatellite; 
    if (index == 2) mapView.mapType = MKMapTypeHybrid; 
    } 

? ??

-(void)flipsideViewControllerSelectionChangedToIndex:(int)index { 

모든 답변에 대해 매우 감사드립니다. 미리 감사드립니다.

답변

1

당신의 유틸리티 뷰 컨트롤러는 그래서

@property(weak) id< FlipsideViewControllerDelegate> delegate; 
당신의 유틸리티 뷰 컨트롤러에서 다음

가 IBAction를이있는 경우 뷰 변경 및 대리인에게

- (IBAction)segmentedControlClicked:(id)sender { 
    [self.delegate flipsideViewControllerSelectionChangedToIndex:[sender selectedSegment]]; 
} 
+0

I를 호출 대리자에 대한 포인터를 필요 시도했다. 앱이 다운됩니다. - [FlipsideViewController valueChangedMap] : 인식 할 수없는 선택기가 인스턴스 0x1cd43790에 전송되었습니다. 2012-11-09 02 : 35 : 19.874 .... 다른 아이디어가 있습니까? – Christoffer

+0

실제로 그 방법이 필요하다. ^^ FlipsideView에서 오른쪽 IBAction으로 xib의 뷰를 연결 한 다음 위의 그림처럼 거기에서 전달할 수있다. 나는 심지어 당신에게 작은 샘플 애플 리케이션을 채찍질 수 있습니다 ... 내게 한 시간 줘 –

+0

대단히 감사합니다! :) – Christoffer

관련 문제