2011-09-12 2 views
0

위치 서비스를 사용하는지 여부에 따라 UISwitch의 값을 변경하려고합니다. 나는 ViewDidLoad 방법의 대상 이벤트를하고 있어요,하지만 당신은 배경에서 백업 응용 프로그램을로드 닫을 수 있기 때문에, 나는 ViewDidAppear에서 UISwitch의 값 변경 해요 : 내가 변경이벤트를 트리거하지 않고 UISwitch 값을 변경하십시오.

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    [self.cell2Switch addTarget:self action:@selector(switchValueChanged:) forControlEvents:UIControlEventValueChanged]; 

    ... 

} 

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 

    if(![AppDelegate sharedAppDelegate].locationServicesEnabled && self.cell2Switch.on) 
    { 
     self.cell2Switch.userInteractionEnabled = NO; 
     [self.cell2Switch setOn:NO]; 
    } 
} 

을 값을 입력하면 ViewDidLoad에 지정된 대상 이벤트가 트리거됩니다.

자동으로 이벤트를 트리거하지 않고 UISwitch 값을 변경할 수있는 방법이 있습니까?

답변

1

대상 이벤트를 제거해야합니다.

UISwitch이 무언가가 사용 또는 사용 중지되었음을 표시하는 것 외에 다른 용도로 사용되지 않으면 대상 이벤트가 필요하지 않습니다.

+0

답장을 보내 주셔서 감사합니다. –

관련 문제