В моем приложении для iphone я сначала вызываю контроллер, который складывает несколько контроллеров представления на основе индекса. Это делается по причине выбора пользователя, мне нужно будет показать разные экраны (в основном, у меня есть экран приветствия, представление вкладок - которое является основным приложением, страницы входа и регистрации). На данный момент все работает отлично - я складываю их и удаляю / переключаю в зависимости от необходимости. Проблема в том, что я хотел бы добавить навигационную панель как в режим входа, так и в режим просмотра. Тем не менее, когда я это делаю, происходит что-то странное - я вижу навигационную панель, но в верхней ее части также есть белая полоса (более или менее на половину ширины). Как я могу успешно добавить этот uinavbar?
Вот контроллер, вызываемый AppDelegate:
- (void)viewDidLoad
{
[super viewDidLoad];
myTabBarVC = [[tabBarController alloc] initWithNibName:@"tabBarController" bundle:nil];
[self.view insertSubview:myTabBarVC.view atIndex:0];
myLoginVC = [[loginViewController alloc] initWithNibName:@"loginViewController" bundle:nil];
[self.view insertSubview:myLoginVC.view atIndex:1];
mySignUp = [[SignUpView alloc] initWithNibName:@"SignUpView" bundle:nil];
[self.view insertSubview:mySignUp.view atIndex:2];
myWelcomeView = [[WelcomeView alloc] initWithNibName:@"WelcomeView" bundle:nil];
[self.view insertSubview:myWelcomeView.view atIndex:3];
}
Когда я добавляю это к одному из контроллеров представления тем же способом, он не работает, как описано выше.
myLoginVC = [[loginViewController alloc] initWithNibName:@"loginViewController" bundle:nil];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:myLoginVC];
[self.view insertSubview:navController.view atIndex:1];
Как я могу заставить это работать? Пожалуйста помоги. Спасибо!
ДОБАВЛЕНИЕ БОЛЬШЕ ИНФОРМАЦИИ О ВИДЕ, ГДЕ КЛАВИАТУРА ВКЛЮЧЕНА ПО УМОЛЧАНИЮ:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if( cell == nil)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
cell.textLabel.text = [[NSArray arrayWithObjects:@"",@"",nil]
objectAtIndex:indexPath.row];
if (indexPath.row == 0) {
textField1 = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 280, 21)];
textField1.delegate = self;
textField1.placeholder = @"example@EMAIL.com";
textField1.text = [inputTexts objectAtIndex:indexPath.row/2];
textField1.tag = indexPath.row/2;
cell.accessoryView = textField1;
textField1.returnKeyType = UIReturnKeyNext;
textField1.clearButtonMode = UITextFieldViewModeWhileEditing ;
[textField1 becomeFirstResponder];
textField1.tag = 1;
}
else
{
textField2 = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 280, 21)];
textField2.delegate = self;
textField2.placeholder = @"password";
textField2.text = [inputTexts objectAtIndex:indexPath.row/2];
textField2.tag = indexPath.row/2;
textField2.returnKeyType = UIReturnKeyDone;
textField2.clearButtonMode = UITextFieldViewModeWhileEditing;
cell.accessoryView = textField2;
[textField1 becomeFirstResponder];
textField1.tag = 2;
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}