默认solvings是不恰当的:如何使leftBarButtonItem看起来像backBarButtonItem?
- 改变以前的ViewController标题 - 我需要让我自己的功能控制按钮触碰起来
- 做出leftBarButtonItem和隐藏backBarButtonItem - leftBarButtonItem不看像一个默认的backBarButtonItem。
默认solvings是不恰当的:如何使leftBarButtonItem看起来像backBarButtonItem?
下面是创建一个自定义leftBarButtonItem一个例子:
UIImage *buttonImage = [UIImage imageNamed:@"backbutton.png"];
UIButton *aButton = [UIbutton buttonWithType:UIButtonTypeCustom];
[aButton setImage:buttonImage forState:UIControlStateNormal];
aButton.frame = CGRectMake(0.0,0.0,buttonImage.size.width,buttonImage.size.height);
[aButton addTarget:self action:@selector(aSelector) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:aButton];
self.navigationItem.leftButtonItem = backButton;
希望它可以帮助...
编辑:
尝试......
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"yourimage.jpg"] style:UIBarButtonItemStyleBordered target:self action:@selector(aSelector)];
self.navigationItem.leftBarButtonItem = backButton;
我不记得按钮是什么类型的按钮,尝试将默认样式更改为其他。祝你好运!
只需创建一个自定义barbuttonitem
并使用类似于后退按钮项的图片对其进行自定义。 您可以从导航堆栈中的视图控制器获取文本。
然后把手水龙头,以实现所需效果
你可以把这里更多具体的例子? – Gargo
您可以将您的自定义视图作为栏按钮到您的导航控制器,是这样的:对于更详细的解释
UIBarButtonItem *customItem = [[UIBarButtonItem alloc] initWithCustomView:yourCustomizedControl];
[yourCustomizedControl release];
self.navigationItem.leftBarButtonItem = customItem;
[customItem release];
检查this Apple documentation,如果你想。
正如我理解你我需要更改backBarButtonItem标题,然后我需要将其转换为UIView并将其分配给一个leftBarButtonItem。但是如何? – Gargo
我会做的是创建一个简单的UIButton,按照我希望的样子自定义它,我的意思是给它一个背景图像,一个标题等等。您可以找到一个类似于backBarButtonItem的图像并分配这个到您新创建的UIButton。然后为这个UIButton分配一个目标动作,以便它在你点击时做你想做的事情。最后,将这个UIButton分配给你的nav的leftBarButton。控制器如上所述。 – aslisabanci
现在我认为最好删除leftBarButtonItem并将其函数放入viewWillDisapear – Gargo
这里是一个黑客添加回状按钮:
UINavigationItem* backNavigationItem = [[UINavigationItem alloc] initWithTitle:@"Back"];
[_navigationBar pushNavigationItem:backNavigationItem animated:NO];
[backNavigationItem release];
您可以添加更多的项目(例如如标题,右键)这样说:
UINavigationItem *navigationItem = [[UINavigationItem alloc] initWithTitle:@"Title"];
navigationItem.rightBarButtonItem = // Some UIBarButtonItem
[_navigationBar pushNavigationItem:navigationItem animated:NO];
[navigationItem release];
它会被应用程序商店接受吗? – Gargo
我从来没有因为这个拒绝 – willy
它看起来像这个解决方案使用“自定义”UINavigationBar('_navigationBar = [[UINavigationBar分配] initWithFrame:...]; [self.view addSubview:_navigationBar]; _navigationBar.items = ...; _navigationBar.delegate = self')而不是'self.navigationController.navigationBar'。你需要适当地实现UINavigatonBarDelegate。 –
谢谢,我会用这个,如果有没有其他方式。但我希望使它更加灵活(当它仅取决于backBarButtonItem的图像和样式而不依赖于图像资源时) – Gargo
我已编辑答案 – karse23
第二个示例更糟,因为sdk doesn'允许一次为该按钮设置图像和标题。所以我应该为所有的标签制作不同的图像。你想给我建议吗? – Gargo