2011-01-25 3 views
1

컨텍스트 : 세 가지 뷰가 있습니다. 소개보기, 업로드보기 및 기본보기. 클래스 (각 해당 헤더)로 나는 rootViewController (SwitchViewController), IntroViewController 및 UploadViewController 있습니다. 첫 번째로 볼 수있는보기는 IntroView입니다. 사용자가 UploadView로 가져온 버튼 (SwitchViewController에서 선언)을 누르면 UploadView에서 이미지를 선택하고 버튼을 다시 눌러 IntroView로 돌아갑니다.목표 -C 초보. 다른 컨트롤러에서 컨트롤러의 속성을 변경 하시겠습니까?

사용자가 UIImagePickerController로 이미지를 선택하는 동안 뷰를 전환하는 버튼이 보이지 않으며 UIImageView가 뷰 (스크린) 상단에 로고가 있습니다. UIImageView 및 UIButton은 모두 SwitchViewController 헤더에서 선언됩니다.

사용되는 코드 : 문제는 매우 경우

UploadViewController.h

#import [...] //Imports 
@class SwitchViewController; 
@interface UploadViewController : 
UIViewController <UIImagePickerControllerDelegate, 
UINavigationControllerDelegate,UIActionSheetDelegate> { 
    UITextField *imageTextField; 
    UIImageView *uploadedImage; 
    SwitchViewController *switchViewController; 
[...] 
} 

@property (nonatomic, retain) SwitchViewController *switchViewController; 
@property (nonatomic, retain) IBOutlet UITextField *imageTextField; 
@property (nonatomic, retain) IBOutlet UIImageView *uploadedImage; 
[...] 
@end 

UploadViewController.m 내가 그냥 프로그래밍을 최근 시작

[...] 
- (IBAction) selectImageButtonPressed { 
self.switchViewController.submitButton.hidden = YES; 
self.switchViewController.imageLogo.hidden = YES; 

[...] //continues 

목적은-c는 너무 용서해주십시오 본질적인. 나는 APRESS의 "Beginning iPhone 3 Development"를보고 보았습니다. 그러나 그것이 기초를 매우 이해하는 데 도움이된다 할지라도 나는 길을 잃는다.

추신 : 질문에 대답하는 것이 더 명확하면 질문에 따라 SwitchViewController.h 및 .m 코드 단편을 제공 할 수 있습니다. 하지만 나는이 텍스트가 그대로 있다고 생각했다.

+0

인터페이스 빌더에서 콘센트를 올바르게 연결 했습니까? –

+0

예. 나는 단지 몇 번 확인해 보았습니다 ... – Joze

+0

@Joze는 3 가지보기의 사진을 제공 할 수 있습니다. 귀하의 요구 사항을 이해하기 어렵습니다. 그럴 수 없다면 질문을 더 간단하게 만들 수 있습니다. – Robin

답변

0

전체 코드를 리팩토링하고 프로그램 자체의 일반 구조를 변경 한 후 문제가 해결되었습니다. 이제 3 view 및 viewController 함께 그것을 제어 할 수 있습니다. 그가 모든 사람에게 접근 할 수 있기 때문에 모든 대의원 전환이 대의원에서 발생합니다. 그렇게하면 모든 컨트롤러로 모든 속성을 훨씬 쉽게 제어 할 수 있습니다. 한보기에있는 물체 중 하나의 속성을 다른보기에서 변경하는 것은 때로는 불가능하지 만 어렵고 다소 불편합니다. (비록 나는 아직도 이런 종류의 성명을 발표하는 아마추어 임).

이 질문을 할 때 내가 취한 접근법은 수행해야 할 응용 프로그램에 대해 간략하게 살펴 보았다. 도와 주려고하는 모든 사람들에게 감사드립니다.

0

@Joze switchViewController이 클래스 UploadViewController의 변수라는 것을 알고있을 것입니다. 따라서이 변수를 사용하면 switchViewController 뷰에 영향을 미치지 않습니다. 그래서 switchViewController 뷰를 호출 할 때 initWithNibName: bundle:을 수행 한 다음 버튼과 imageView를 숨기고 switchViewController.delegate = self;과 같은 작업을 수행 한 다음 뷰를 모달로 호출하거나 원하는 방식으로 호출해야합니다.

추신. 그 철자법이 정확한지 모르겠습니다. 나는 집에 xcode가 없다. 문제가 해결되기를 바랍니다.

+0

UploadViewController의 viewDidLoad 메서드에서 실제로 그렇게했습니다. 여기에 내가 읽을 수있는 바램이 있습니다 : SwitchViewController * switchController = [[SwitchViewController alloc] initWithNibName : @ "SwitchViewController"번들 : nil]; \t self.switchViewController = switchController; \t [switchController release]; [super viewDidLoad]; 읽을 수 없거나 더 많은 코드가 필요하면 알려주십시오. – Joze

+0

난 당신이 당신의보기에로드 할 방법이 작업을 수행 할 필요가 뜻. SwitchViewController를 보여줄 때이 작업을 수행해야합니다. 버튼을 누를 때처럼. – Robin

+0

다른 뷰 (SwitchViewController)를 어떻게 호출합니까? – Robin

관련 문제