친애하는 모든 - 탭 기반 응용 프로그램 (Xcode 예제 응용 프로그램으로 시작됨)이 있습니다.UITabBarController에서 다른보기의 개체의 .hidden 속성을 설정하는 방법
하나의 탭이 이미지를 선택하는 데 사용됩니다 (UIImagePickerController) - 의도 한대로 작동합니다. 다른 탭은 선택한 이미지가 포함 된 UIImageView를 통해 CoreGraphics를 표시하는 데 사용됩니다. 이것은 drawRect : Custom UIView의 메소드에서 수행됩니다.
새 이미지를 선택하면 UIView에서 인터페이스를 재설정해야합니다.
현재 내 UIView에는 -(IBAction)resetAll:(id)sender
메서드가 있습니다.이 뷰는 동일한 뷰의 버튼에서 모든 것이 의도 한대로 재설정됩니다. 나는 ViewController.m 파일의 viewWillAppear 방법에서 resetAll 메서드를 호출 할 때
그러나이 :
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
TabBarEgAppAppDelegate *delegate = (TabBarEgAppAppDelegate *)[[UIApplication sharedApplication] delegate];
if(delegate.newphotopicked){
[myView resetAll:nil];
delegate.newphotopicked = NO;
}
가 트리거되는 resetAll 방법에 NSLog하지만 (예 : button.hidden = YES;
등) 매개 변수가 설정되지 않습니다 .
UIView가 TabBarViewController에 의해 어떤 방식으로 숨겨져 있기 때문입니까? 탭을 변경하면 다른 방법으로 내보기를 재설정 할 수 있습니까 (UIView는 viewWillAppear을 호출하지 않습니다)? 나에게 네게 시간을 내 주셔서 고마워! 하는 .m
- (void)viewDidLoad {
myView = [[MyView alloc] initWithFrame:CGRectZero];
[myView resetAll:nil];
호출에서 같은 효과가있는
MyView *myView;
:
M
그냥 명확히하는 @의의 ViewController는하여 .H에 다음을 가지고 버튼 및 UIView (MyView) 자체에 포함 된 응용 프로그램의 어디서나 호출합니다.
내가 링크했거나 서브 클래 싱을 잘못했다는 것을 알았습니다 (제발 도와주세요).
안녕하세요, Bogatyr, 도움 감사합니다. 그것은 ViewController에서 함수를 호출 할 때마다 발생합니다. 아울렛 객체는 거기에 있습니다 - 콘솔에 오류가 없으면 메소드가 먼저 작동중인 버튼에서 호출 된 경우에도 그렇지 않으면 동일한 동작을 제안합니다. viewWillAppear (이 동작은 나와 똑같은 동작)보다는 viewDiDAppear 메서드로 호출을 이동 하시겠습니까? 아니면 ViewController에서 함수를 정의한다는 의미입니까? 뷰 컨트롤러에서 정의한다면 (미안, 여기에 어리석은 질문을한다) 뷰에 속성을 설정하는 방법은 무엇입니까? – drmatt
네, 모든 것을 그때까지 만들어야한다는 아이디어와 함께 DID에 대한 호출을 이동시킬 것을 제안했습니다. 이 두 메서드는 모두 UIViewController 클래스에 있으며 필요에 따라 구현할 수도 있고 구현하지 않을 수도 있습니다. UIViewController는 "view"라는 속성으로 뷰를 가지기 때문에 뷰 속성은 "self.view.property = value"에 의해 설정됩니다. 모든 것이 잘 풀렸습니까? 방금 네가 받아 들인 것 ... – Bogatyr