更改以编程方式创建的导航栏上的autoresizingMask。

| 因此,我有一个基于视图的应用程序,其中我需要一个带有表格视图的页面,并且希望它上方的导航栏可以返回。我以编程方式添加了以下内容:
-(IBAction)switchToTableView; {

    tableView *table = [[tableView alloc] initWithNibName:@\"tableView\" bundle:nil];
    UINavigationController *navControl = [[UINavigationController alloc] initWithRootViewController: table];
    table.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [table release];
    [self presentModalViewController: navControl animated:YES];
    [navControl release];
}
然后在tableview类的viewDidLoad中实现:
- (void)viewDidLoad 
{
    self.tableView.rowHeight = 70.f;

    UIBarButtonItem *back = [[UIBarButtonItem alloc]
                             initWithTitle:@\"Back\"
                             style:UIBarButtonItemStyleDone
                             target:self
                             action:@selector(switchToHome)];
    self.navigationItem.leftBarButtonItem = back;

    UIBarButtonItem *map = [[UIBarButtonItem alloc]
                            initWithTitle:@\"Map\"
                            style:UIBarButtonItemStyleDone
                            target:self
                            action:@selector(switchBacktoFindArt)];
    self.navigationItem.rightBarButtonItem = map;
    [map release];

    [super viewDidLoad];
}
添加所需的按钮。现在,所有这些都很好用,但是现在我正在浏览我的应用程序并允许更改方向,由于无法在IB中更改autoresizingMask,因此我遇到了麻烦。整个tableview页面的大小调整得很好,除了导航栏从上到下非常瘦。我希望它保持相同的高度。如何设置适当的蒙版,甚至访问IB之外的导航栏?     
已邀请:
我想您可以玩这样的事情来禁用高度变化:
navControl.navigationBar.autoresizingMask ^= UIViewAutoresizingFlexibleHeight
但是,如果您像这样使用UINavigationController的内部结构,则它可能真的变得不灵通。令我惊讶的是,导航栏的大小尚未调整到合适的高度,就像默认情况下那样。 (感觉您的代码中的其他地方可能有其他问题,但是我必须查看更多内容才能发现)。     

要回复问题请先登录注册