런타임시 탭 표시 줄의 탭 표시 줄 항목을 프로그래밍 방식으로 변경하고 있습니다. 내 앱의 UI 전체가 스토리 보드를 사용하며 코드에서 UI 변경을 수행하는 유일한 영역입니다.UITabBarController에 프로그래밍 방식으로 추가 된 UIView는 검정색으로 표시됩니다.
따라서 UI는 속성에 따라 변경됩니다. 이 속성을 찾을 수 없으면 viewControllers 배열이 새 UIView가 포함 된 새 배열로 변경됩니다.
다음은 TabBarController.m에 대한 내 코드입니다 :
NSArray *arrayOfControllers = self.viewControllers;
NSMutableArray *newArrayOfControllers = [[NSMutableArray alloc]init];
for (id controller in arrayOfControllers)
{
[newArrayOfControllers addObject:controller];
}
if (!isMember)
{
NotMemberVC *vc = [[NotMemberVC alloc]init];
vc.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Test" image:[UIImage imageNamed:@"door-sign.png"] tag:0];
[newArrayOfControllers removeLastObject];
[newArrayOfControllers addObject:vc];
self.viewControllers = newArrayOfControllers;
}
그리고 여기 내가이 새로운 탭 표시 줄의 항목을 선택했을 때의 모습입니다 : 나는이 문제를 해결할 수있는 방법에 대한
어떤 제안 ?
당신이 배열의mutableCopy
할 수있는 방법이있을 때 사이클에 대한 작업을 수행 할 필요가 없습니다 모든
을 ? – rdelmar
뷰가 하나의 스토리 보드에 생성되었습니다 – TooManyEduardos
그런 다음 init을 할당하지 않고 UIStoryboard 메소드 instantiateViewControllerWithIdentifier :를 사용하여 컨트롤러를 만들어야합니다. – rdelmar