Две интересные вещи: он измеряет 20 пикселей вниз (размер строки состояния) и ваша строка "nextCategoryController.title = ...", похоже, ничего не делает.Итак ...
1) Я предполагаю, что вы не использовали setStatusBarHidden
?
2) Похоже, что материал navController не работает.Можете ли вы дать код из appDelegate, который создает tabBar и NavController?
3) Добавьте этот код и попробуйте вызвать [self dumpWindow: @"VDL"]
из вашего метода подкатегории ViewDidLoad
.Я считаю это бесценным всякий раз, когда проверяю правильность структуры моего представления.
- (void) dumpWindowFrom:(NSString *) fromText {
[self dumpViews: nil from:fromText];
}
void dumpViewsRecursive(UIView* view, NSString *text, NSString *indent) {
Class cl = [view class];
NSString *classDescription = [cl description];
if ([text compare:@""] == NSOrderedSame)
NSLog(@"%d: %@ %@ %@", (int)view, classDescription, NSStringFromCGRect(view.frame), view.hidden ? @"Inv" : @"Vis");
else
NSLog(@"%d: %@ %@ %@ %@", (int)view, text, classDescription, NSStringFromCGRect(view.frame), view.hidden ? @"Inv" : @"Vis");
for (NSUInteger i = 0; i < [view.subviews count]; i++)
{
UIView *subView = [view.subviews objectAtIndex:i];
NSString *newIndent = [[NSString alloc] initWithFormat:@" %@", indent];
NSString *msg = [[NSString alloc] initWithFormat:@"%@%d:", newIndent, i];
dumpViewsRecursive (subView, msg, newIndent);
[msg release];
[newIndent release];
}
}
- (void) dumpViews: (UIView *) view {
dumpViewsRecursive (( (!view) ? [[UIApplication sharedApplication] keyWindow] : view), @"" ,@"");
}
- (void) dumpViews: (UIView *) view from:(NSString *) fromText{
dumpViewsRecursive ((!view) ? [[UIApplication sharedApplication] keyWindow] : view, fromText, @"");
}
4) Вы всегда можете просто обмануть и добавить:
CGRect frame = [nextCategoryController.view frame];
frame.origin.y = frame.origin.y+20.0;
[nextCategoryController.view setFrame:frame];