Skip to main content

iPhone: Setting Navigation Bar Title


Hey all. I'm still pretty new to iPhone development, and I'm having a bit of trouble figuring out how to change the title of my Navigation Bar. On another question on this site somebody recommended using :




viewController.title = @"title text";



but that isn't working for me...Do I need to add a UINavigationController to accomplish this? Or maybe just an outlet from my UIViewController subclass? If it helps, I defined the navigation bar in IB and I'm trying to set its title in my UIViewController subclass. This is another one of those simple things that gives me a headache. Putting self.title = @"title text"; in viewDidLoad and initWithNibName didn't work either. Anybody know what's happening and how to get it happening right?



Thanks!


Source: Tips4allCCNA FINAL EXAM

Comments

  1. The view controller must be a child of some UINavigationController for the .title property to take effect. If the UINavigationBar is simply a view, you need to push a navigation item containing the title, or modify the last navigation item:

    UINavigationItem* item = [[UINavigationItem alloc] initWithTitle:@"title text"];
    ...
    [bar pushNavigationItem:item animated:YES];
    [item release];


    or

    bar.topItem.title = @"title text";

    ReplyDelete
  2. if you are doing it all by code in the viewDidLoad method of the UIViewController you should only add self.title = @"title text";

    something like this:

    - (void)viewDidLoad {
    [super viewDidLoad];
    self.title = @"title";
    }


    you could also try self.navigationItem.title = @"title";

    also check if your navigationItem is not null and if you have set a custom background to the navigationbar check if the title is set without it.

    ReplyDelete
  3. There's one issue with using self.title = @"title";

    If you're using Navigation Bar along with Tab bar, the above line also changes the label for the Tab Bar Item. To avoid this, use what @testing suggested

    self.navigationItem.title = @"MyTitle";

    ReplyDelete
  4. In my navigation based app I do this:

    myViewController.navigationItem.title = @"MyTitle";

    ReplyDelete
  5. I guess you need a dynamic title that is why you don't set it in IB.

    And I presume your viewController object is the one specified in the NIB?

    Perhaps trying setting it to a dummy value in IB and then debug the methods to see which controller has the dummy value - assuming it appears as the title...

    ReplyDelete
  6. By default the navigation controller displays the title of the 'topitem'

    so in your viewdidload method of your appdelegate you can. I tested it and it works

    navController.navigationBar.topItem.title = @"Test";

    ReplyDelete
  7. UINavigationItem* item = [[UINavigationItem alloc] initWithTitle:@"title text"];
    ...
    [bar pushNavigationItem:item animated:YES];
    [item release];


    This code worked.

    ReplyDelete
  8. I had a navigation controllers integrated in a TabbarController. This worked

    self.navigationItem.title=@"title";

    ReplyDelete

Post a Comment

Popular posts from this blog

Slow Android emulator

I have a 2.67 GHz Celeron processor, 1.21 GB of RAM on a x86 Windows XP Professional machine. My understanding is that the Android emulator should start fairly quickly on such a machine, but for me it does not. I have followed all instructions in setting up the IDE, SDKs, JDKs and such and have had some success in staring the emulator quickly but is very particulary. How can I, if possible, fix this problem?

CCNA 3 Final Exam => latest version

1 . Which security protocol or measure would provide the greatest protection for a wireless LAN? WPA2 cloaking SSIDs shared WEP key MAC address filtering   2 . Refer to the exhibit. All trunk links are operational and all VLANs are allowed on all trunk links. An ARP request is sent by computer 5. Which device or devices will receive this message? only computer 4 computer 3 and RTR-A computer 4 and RTR-A computer 1, computer 2, computer 4, and RTR-A computer 1, computer 2, computer 3, computer 4, and RTR-A all of the computers and the router   3 . Refer to the exhibit. Hosts A and B, connected to hub HB1, attempt to transmit a frame at the same time but a collision occurs. Which hosts will receive the collision jamming signal? only hosts A and B only hosts A, B, and C only hosts A, B, C, and D only hosts A, B, C, and E   4 . Refer to the exhibit. Router RA receives a packet with a source address of 192.168.1.65 and a destination address of 192.168.1.161...