I have the back buttons translated to german ("Zurück"). However, it seems that when there isn't enough space (because of the length of the title) it is shown as "back". And if there is only very little space, no title is shown at all, only the chevron "<".
Is there a way for it to not show the back buttons with the "back" title, but only as "<" if there isn't enough space for "Zurück"?
You can override loadView and put this code in your view controller:
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:#"" style:UIBarButtonItemStylePlain target:nil action:nil];
You could calculate the text length before that in order to decide if you want to show the back button with title or without it.
Edit
It's better to do this in a UIViewController superclass and have all your view controllers extend that class.
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60)
forBarMetrics:UIBarMetricsDefault];
Then you can remove the back button item title.
If you use Storyboard, you can set navigation attributes inspector Back Button with space.
You can follow this link
Related
When I deleted the title text of my back button, the text of my navigation title is not centred.
I used
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:#" " style:UIBarButtonItemStylePlain target:nil action:nil];
and
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60) forBarMetrics:UIBarMetricsDefault];
in both my viewDidLoad and viewWillAppear
this is a screenshot of the result
Any idea how I can fix this?
The UINavigationBar displays the backBarButtonItem of the previous view controller, so you'll need to make sure you are setting that and not the backBarButtonItem of the displayed view controller. The call to setBackButtonTitlePositionAdjustment(_:forBarMetrics:) is not necessary.
Whenever the user wants to select a new share method or action that isn't listed by default, by tapping the "More" button on the UIActivityViewController generated share sheet, a new view is displayed, As everybody knows.i need to change the bar button on that page
can anybody help me on adding our own bar button as a rightbarbutton item?
Try with this. if not you want this ,then explain a little bit more.
UIBarButtonItem *addButton = [[UIBarButtonItem alloc]initWithTitle:#"Done" style:UIBarButtonItemStyleDone target:self action:#selector(doneButtonPressed)];
self.navigationItem.rightBarButtonItem = addButton;
I feel daft asking this question, but I haven't been able to get this to work. I have a NavController->TableViewController->WebViewController. I'm trying to change the title of the backButton on the WVC from the default "Back" to "Reference".
This should be a simple matter of setting the text property of the Back button either in Storyboard (which isn't working) or in code of my WebViewController's viewDidLoad method:
self.navigationItem.backBarButtonItem.title = #"Reference";
Is this just a bug or am I missing something?
Put this in your tableviewController
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:#"Reference" style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem = backButton;
Screen shot
From document
If you want to specify a custom image or title for the back button, you can assign a custom bar button item (with your custom title or image) to this property instead.
You should set it in your TableViewController, not in your WebViewContorller
Solved: I had added a grey activity indicator in a small view in the nav bar of the WVC. After I removed it, the code worked fine. Thanks #Leo, #Jacky, #Jaleel!
this work for me
self.navigationController.navigationBar.topItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:#"Reference" style:UIBarButtonItemStylePlain target:nil action:nil];
I want to add back button on NavBar in iOS, but I can't find back array image on systemItem. Is there any property of default back arrow image.
I tried SMF.UI.iOS.BarButtonType.cancel but it has a title says "Vazgeç" instad of back arrow image.
You must assign onSelected event of back item.
Can you try this;
var leftItem = new SMF.UI.iOS.BarButtonItem({
systemItem : SMF.UI.iOS.BarButtonType.cancel,
onSelected : Pages.back()
});
this.navigationItem.leftBarButtonItems = [leftItem];
You should use Navigation Controller for that. Then the back button will appear automatically.
If you want to display only image, without text, put this code in the view controller that you came from.
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:#"" style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem = backButton;
I'm trying to have a button on the right side of my navigation controller - after this works I'd like the button to be as near to invisible as possible while still working. Maybe setting to high transparency or changing the colour to the navigation bar colour (whatever is cheaper for memory).
First though I can't seem to get a visible or working button on the right side of my navigation bar:
self.navigationController.navigationItem.rightBarButtonItem =
[[UIBarButtonItem alloc] initWithTitle:#"coin" style:UIBarButtonItemStyleDone
target:self action:#selector(changeToInAppScene:)];
You have to assign to self.navigationItem.rightBarButtonItem (the navigation item of the current view controller), not self.navigationController.navigationItem.rightBarButtonItem .
- (void)viewWillAppear:(BOOL)animated
{
UIBarButtonItem *rightBar = [[UIBarButtonItem alloc]initWithTitle:#"Coin" style:UIBarButtonItemStylePlain target:self action:#selector(changeToInAppScene:)];
self.navigationItem.rightBarButtonItem = rightBar;
}