【发布时间】:2013-05-07 20:18:10
【问题描述】:
当我第一次加载我的视图控制器时,我为我的 UINavigationBar 设置了一些按钮和一个标题。如果我以纵向加载屏幕,一切看起来都很棒。但是,如果我以横向方式加载屏幕,则按钮仅占用提供的部分空间。当我再次旋转到纵向并返回到横向时,项目现在可以正确扩展以填充 NavBar 上的空间。
导航栏本身是在情节提要中手动添加的。它设置为自动调整大小和拉伸,并选中 Autoresize Subviews。
如何让它始终正确显示导航栏?
相关设置代码如下所示。
UIBarButtonItem * saveBtn = [[UIBarButtonItem alloc] initWithTitle:@"Set" style:UIBarButtonItemStyleBordered target:self action:@selector(setField)];
UIBarButtonItem * cancelBtn = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancelClicked:)];
UINavigationItem * buttonsItem = [[UINavigationItem alloc] init];
NSString * title = [self.data objectForKey:@"title"];
if(title){
buttonsItem.title = title;
} else {
buttonsItem.title = @"Default Title";
}
[buttonsItem setLeftBarButtonItem:cancelBtn animated:YES];
[buttonsItem setRightBarButtonItem:saveBtn animated:YES];
[navBar setItems:[[NSArray alloc] initWithObjects: buttonsItem, nil] animated:YES];
附加信息: 一些我之前忘记提及的附加信息。
我不是通过 segue 加载此屏幕,而是这样做:
DiaryCalendarPickerViewController *navigationController = [self.storyboard instantiateViewControllerWithIdentifier:@"diaryCalendarForm"];
...
[self presentViewController:navigationController animated:YES completion:nil];
初始加载到横向
旋转到纵向
转回横向
【问题讨论】:
-
可以添加一些截图吗?
标签: ios uinavigationbar