【问题标题】:UINavigationController title is not displayed?UINavigationController 标题不显示?
【发布时间】:2011-01-03 16:02:04
【问题描述】:

我有正常的 UIViewController ,我在其中添加了 UINavigationControllerDelegate,我 在 willappear 中添加如下内容?但它不起作用?

    [self.navigationController setNavigationBarHidden:NO animated:YES];
    self.navigationController.navigationItem.title = @"hai";

【问题讨论】:

    标签: ios objective-c uinavigationcontroller


    【解决方案1】:

    在我的情况下,当我在 init 方法中设置它时,iOS6 上的标题不可见:

    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    
        if (self) {
            self.title = LS(@"Favorites");
            self.tabBarItem.title = LS(@"Favorites");
            self.tabBarItem.image = [UIImage imageNamed:@"star"];
        }
    
        return self;
    }
    

    所以,它应该从那里移到ViewDidLoad

    【讨论】:

      【解决方案2】:

      您可能需要在控制器的“属性”选项卡中将导航栏设置为“带提示的黑色导航栏”。这对我有用。

      【讨论】:

        【解决方案3】:

        如果没有视图控制器被压入堆栈,即。您在堆栈顶部显示视图控制器(有时称为 rootViewController),您可以使用

        [rootViewController setTitle:@"Title"];
        

        请注意,您必须使用 setTitle - rootViewController.title=@"Title" 通常不起作用。

        实际上,您可以使用任何视图控制器来执行此操作,即使它还没有经过 viewDidLoad 处理。如果它是通过编程方式创建的,只需使用

        myViewController *mvc=[[myViewController alloc] initWithNibName:@"nameofnibwithout.xib" bundle:nil];
        

        或者您可以在应用程序委托中将其声明为一个对象,使其成为 IBOutlet,创建一个 UIViewController 并将其类设置为 myViewController,并将其连接到 IBOutlet,因此它不是 nil。

        【讨论】:

          【解决方案4】:

          每个视图控制器都有一个导航项。您正在更改导航控制器的导航项......但除非导航控制器位于另一个导航控制器中,否则永远不会看到!而不是

          self.navigationController.navigationItem.title = @"hai";
          

          你想要的

          self.navigationItem.title = @"hai";
          

          或者,如果您的导航项的标题为 nil,则导航控制器将使用您的视图控制器的标题:

          self.title = @"hai";
          

          您应该简单地设置导航栏和标签栏都使用的视图标题,除非出于某种原因您想为每个标题指定不同的标题。

          【讨论】:

            【解决方案5】:

            你确定self.navigationController.navigationItem在你设置标题时不是nil吗?

            【讨论】:

              【解决方案6】:

              您应该在添加到导航控制器的视图控制器中设置标题。

              即在添加视图控制器中

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

              或直接访问视图控制器的数组

                      AddFriendViewController *addFriendsView = [[AddFriendViewController alloc] initWithNibName:@"AddFriendViewController" bundle:nil];
                      [self.navigationController pushViewController:addFriendsView animated:YES];
                      [[self.navigationController.viewControllers objectAtIndex:0] setTitle:@"myTitle"];
                      [addFriendsView release];
              

              【讨论】:

                猜你喜欢
                • 2011-05-13
                • 1970-01-01
                • 2014-12-03
                • 2019-02-05
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多