2012-11-13 3 views
4

배경으로 표시된 ViewController의 UIImageView에서 다른 배경 이미지를로드해야하며 설정 번들에서 토글 스위치로 사용되는 설정에 따라 다릅니다. -viewWillAppear에서 설정 번들에서 토글 스위치 값 가져 오기

ViewController.m

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
id toggleSwitchValue = [defaults objectForKey:@"PSToggleSwitchSpecifier"]; 
BOOL boolToggle = [toggleSwitchValue boolValue]; 

// setting custom back for viewController 
if (boolToggle == YES) { 
    [self.backGround setImage:[UIImage imageNamed:@"1.png"]]; 
    NSLog(@"YES"); 
} else if (boolToggle == NO) { 
    [self.backGround setImage:[UIImage imageNamed:@"2.png"]]; 
    NSLog(@"NO"); 
} 

에 나는하지 경고를하지만 난이 사용됩니다 어떤 이미지를 설정할 수 없습니다.

해결할 아이디어가 있습니까?

답변

1

IBOutlet이 올바르게 배선되어 있고 도트 표기법 대신 [background setImage :]를 사용하십시오. 둘 다 작동하지 않으면 로직에 문제가 있거나 userDefault 값을 설정/읽는 중입니다.

+1

나는이 메소드에서 객관적인 c * isnt * FIFO lang ...이 아니라면 뷰 컨트롤러를 인스턴스화한다고 확신한다. 아마 배경 속성을 인스턴스화하지 않았을 것입니다. – CodaFi

+0

여기에서 모든 사용자 지정 코드를 ViewController.m에서 -viewWillAppear로 이동했지만 아무 것도 변경되지 않았습니다. NSLog는 내가 매번 다른 사람의 내부에 있음을 보여줍니다. – Alex

+0

CoDaFi,이 배경에 대한 IBOutlet이 UIImageView 코드와 IB로 설정되어 있습니다. 그냥 체크했다 – Alex

2

뷰가 펜촉에서로드 된 경우 viewDidLoad 또는 그 이후의 뷰를 수정해야합니다.

+0

-viewDidAppear? – Alex

+2

@Alexey viewDidAppear는 viewWillAppear가 더 전통적 일지는 몰라도 아무런 문제없이 작동 할 것입니다. if 문 앞에 중단 점을 설정하고 디버거 유형으로'po self.backGround'를 설정하십시오. –