设置titleview的所有navigationcontroller和navigationitem(

2019-08-04 03:43发布

[[[UINavigationBar appearance] setTitleView:button]

我试图设置标题视图按钮,使用上面的代码行中的所有导航项目,但它不是我working.How可以通过编写的appdelegate小码设置在我的项目的所有导航栏标题的看法?

Answer 1:

自定义导航栏的外观

它是好的修改barStyle,tintColor,和半透明属性,但绝不能直接改变的UIView级属性,如帧,边界,α或直接隐藏属性。

欲了解更多的细节,你可以按照苹果的文档UINavigationBar的类参考

编辑- >

我解决您的查询

[[UINavigationBar appearance] addSubview:yourView];  

其他导航相关查询



Answer 2:

试试这个猪头...

//put whatever object in this view..for example button that you want to put...
UIView* ctrl = [[UIView alloc] initWithFrame:navController.navigationBar.bounds];
ctrl.backgroundColor = [UIColor yellowColor];
ctrl.autoresizingMask = UIViewAutoresizingFlexibleWidth;
[navController.navigationBar addSubview:ctrl];

让我知道这是工作还是没有!!!!

编码愉快!



Answer 3:

这是你如何创建addDelegate导航控制器和标题设置为它,你必须将以下代码添加到didFinishLaunchingWithOptions方法。 请注意,您需要设置一个根视图,这将将在navigationController内部显示的viewController的的viewController。

  yourViewController *mainVC = [[yourViewController alloc]init];
  UINavigationController *navigationController1 = [[UINavigationController alloc] initWithRootViewController:mainVC];
  navigationController1.title = @"title";
[window addSubview:navigationController1.view];


Answer 4:

如果你使用的iOS4,您可以重写的drawRect

@implementation UINavigationBar (UINavigationBarCategory)

-(void)drawRect:(CGRect)rect
{

    UIImageView *itleImageView = //create object
    [self addSubView:titleImageView];
     //set title view in navigation bar
}
@end

iOS 5中,

if ([[UIDevice currentDevice].systemVersion floatValue] >= 5.0) {
    if ([self.navigationController.navigationBar respondsToSelector:@selector( setBackgroundImage:forBarMetrics:)]){

   UIImageView *itleImageView = //create object
   [self.navigationController.navigationBar addSubView:titleImageView];
    }
} 

我想这是一个正确的,因为我没有实现。



Answer 5:

我想在每一个NavigationController添加一个标志,所以我做的一个子类UINavigationController ,并在使用该viewDidLoad -方法

UIImage *logo =[UIImage imageNamed:@"logo"];
CGFloat navWidth = self.navigationBar.frame.size.width;
CGFloat navHeight = self.navigationBar.frame.size.height;

UIImageView *logoView = [[UIImageView alloc] initWithFrame:CGRectMake(navWidth-logo.size.width - 5,
                                                                      (navHeight - logo.size.height) / 2,
                                                                      logo.size.width,
                                                                      logo.size.height)];

logoView.image = logo;

[self.navigationBar addSubview:logoView];


文章来源: Set titleview for all navigationcontroller and navigationitem