UIViewController представляет UINavigationController - нет панели навигации? - PullRequest
0 голосов
/ 01 апреля 2011

У меня есть UIViewController с таблицей в нем. Нажатие на синий значок раскрытия заставляет контроллер представления представлять UINavigationController. Это работает нормально и заставляет навигационный контроллер отображаться, но без навигационной панели, как показано ниже:

enter image description here enter image description here

Как мне заставить этот волшебный Навбар снова появляться? Мне действительно нужно представить карту в контроллере nav, и сейчас она не работает.

РЕДАКТИРОВАТЬ: Вот код, который я использую, чтобы показать его:

// scanned recently table view thing
- (void)tableView:(UITableView *)tableVieww didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableVieww deselectRowAtIndexPath:indexPath animated:YES];

    if(indexPath.section == 0) {
    NSString *info = [[scannedBackups objectAtIndex:indexPath.row] objectForKey:@"data"];
    NSArray *items = [info componentsSeparatedByString:@"&"];
    scanCodeViewCohntroller.dict = [[NSMutableDictionary alloc] init];
    int o;
    for (o = 0; o < [items count]; o++) {
        NSArray *secondItems = [[items objectAtIndex:o] componentsSeparatedByString:@"="];
        [scanCodeViewCohntroller.dict setObject:[secondItems objectAtIndex:1] forKey:[secondItems objectAtIndex:0]];
        }


        /*NSError *err;
        scanCodeViewCohntroller.dict = [NSPropertyListSerialization propertyListWithData:[foo dataUsingEncoding:NSUnicodeStringEncoding] options:NSPropertyListMutableContainersAndLeaves format:kCFPropertyListXMLFormat_v1_0 error:&err];
        if(err != nil) {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Corrupted Data" message:[NSString stringWithFormat:@"Your Scanned Backup Data Store is corrupted. It will now be erased. %@", [err localizedDescription]] delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
            [alert show];
            [alert release];
            scannedBackups = [[NSMutableArray alloc] init];
            NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
            NSString *documentsDirectory = [paths objectAtIndex:0];
            NSString *fullFileName = [NSString stringWithFormat:@"%@/scannedCodes.plist", documentsDirectory];
            [scannedBackups writeToFile:fullFileName atomically:NO];

        [tableView reloadData];
        }*/
        [scanCodeViewCohntroller.dict setObject:[[scannedBackups objectAtIndex:indexPath.row] objectForKey:@"date"] forKey:@"date"];
        [scanCodeViewCohntroller initalizeData];
    [self presentModalViewController:scanCodeViewCohntroller animated:YES];
    }
}

1 Ответ

2 голосов
/ 01 апреля 2011

Вам нужно получить навигационный контроллер и вызвать setNavigationBarHidden:animated:.Итак, попробуйте:

[detailController.navigationController setNavigationBarHidden:NO animated:NO];

Редактировать:

Исходя из вашего редактирования, я бы предложил заменить последнюю строку:

[self presentModalViewController:scanCodeViewCohntroller animated:YES];

на:

[self.navigationController pushViewController:scanCodeViewCohntroller animated:YES];
...