사용자가 반복적으로 새 UIViewController를 뷰에 추가 할 수 없도록 내 뷰가 이미 뷰에 추가되었는지 확인하고 싶습니다. 그것은 결코ViewController가 뷰 스택에 이미 있는지 확인하십시오.
viewAlreadyDisplayed = YES;
보기가 이미 표시되는 경우 찾는 것에 대해 갈 수있는 올바른 방법은 무엇입니까을 유발하지 않기 때문에
if (!self.fmovc)
{
self.fmovc = [[FMOVC alloc] initWithNibName: @"FMOVC" bundle:nil];
}
BOOL viewAlreadyDisplayed = NO;
for (UIView * b in self.view.subviews)
{
if ([b isKindOfClass:[FMOVC class]])
{
viewAlreadyDisplayed = YES;
}
}
if (!viewAlreadyDisplayed)
{
[self.view addSubview:self.fmovc.view];
}
이 작동하지 않습니다?
감사합니다, -code
코드에 따라 뷰 내부에 viewController를 추가 하시겠습니까? 이게 내게 논리가 아니야? 어떤 viewController가 이미 푸시/프리젠 테이션되었거나 어떤 뷰가 이미 서브 뷰되어 있는지 확인하고 싶습니까? –
이렇게하는 방법은 여러 가지가 있지만 "([b isKindOfClass : [FMOVC class]])", FMOVC는 viewcontroller이고 b는 UIView이므로 코드가 작동하지 않는 이유가 있습니다. 나는 그것을 테스트하지 않았지만 대신 "b == self.fmovc.view"를 시도 할 수있다. – Srikanth