所以我有一个基于视图的应用程序,我需要一个带有tableview的页面,我想在它上面的导航栏返回。我以编程方式添加了这个:
-(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外的导航栏?
答案 0 :(得分:2)
我想你可以玩这样的东西来禁用高度变化:
navControl.navigationBar.autoresizingMask ^= UIViewAutoresizingFlexibleHeight
但是如果你玩这样的内部结构,那么UINavigationController可能会变得很糟糕。令我感到惊讶的是,导航栏还没有调整到适当的高度,就像默认情况下那样。 (感觉在代码中的其他地方可能出现其他问题,但我必须看到更多内容才能找到。)