ios – 为什么将storyview添加到故事板中的导航栏会删除导航栏?
2020年01月16日
作者:佚名
我有一个工作的应用程序,它是一个基于tabbarcontroller的应用程序.第一个viewcontroller是一个uitableviewcontroller.所有3个选项卡顶部都有一个导航栏,我从对象库中添加了导航栏.这就是应用程序的样子:
然后我想将导航栏上的图像设置为居中徽标.所以我环顾四周,发现代码看起来像这样:
UIImage *image = [UIImage imageNamed:@"icon57.png"]; UIImageView *imageView = [[UIImageView alloc] initWithImage: image]; self.navigationItem.titleView = imageView;
要么
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"icon57.png"] forBarMetrics:UIBarMetricsDefault];
但它没有用.我刚买了一个空的白色导航栏.所以我决定通过从对象库中拖入它来将UIImageView添加到导航栏但是由于某种原因它导致导航栏消失,我最终得到了这个:
为什么会这样?
解决方法
Interface Builder不支持您的方式.我鼓励你
file a radar支持这样做.您可以通过两种不同的方式实现此目的,一种是代码,另一种是IB.
通过Interface Builder
您可以从对象库中拖动UIView实例并将其放入导航栏的中心.这将在栏的标题区域内设置视图.然后,您可以获取UIImageView实例并将其添加为刚刚添加的视图的子视图.
通过代码
您可以使用视图控制器导航项的titleView属性通过代码设置UIImageView:
- (void)viewDidLoad { [super viewDidLoad]; UIImage *logo = [UIImage imageNamed:@"logo.png"]; self.navigationItem.titleView = [[UIImageView alloc] initWithImage:logo]; }
编辑:
要将其设置在左侧,您必须将图像视图包装在UIBarButtonItem中.您可以使用上述相同的步骤在IB中执行此操作,或者在以下代码中执行此操作:
- (void)viewDidLoad { [super viewDidLoad]; UIImage *logo = [UIImage imageNamed:@"logo.png"]; UIImageView *imageView = [[UIImageView alloc] initWithImage:logo]; UIBarButtonItem *imageButton = [[UIBarButtonItem alloc] initWithCustomView:imageView]; self.navigationItem.leftBarButtonItem = imageButton; }
以上是来客网为你收集整理的ios – 为什么将storyview添加到故事板中的导航栏会删除导航栏?全部内容,希望文章能够帮你解决ios – 为什么将storyview添加到故事板中的导航栏会删除导航栏?所遇到的程序开发问题。
如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。