Ios 触摸UITableView中的行时更改UINavigationBar中的标题

Ios 触摸UITableView中的行时更改UINavigationBar中的标题,ios,uinavigationbar,Ios,Uinavigationbar,好的,所以我尝试了很多不同的方法 目前,我已将UINavigationBar与IB放在一起。然后用IBOutlet声明它 从那以后,无论我怎么努力,我似乎都无法改变标题。即使只是在ViewDidLoad中 此外,我不需要指定导航栏的代表,是吗 这是我的密码: #import <UIKit/UIKit.h> @interface ViewController : UIViewController < UITableViewDataSource, UITableViewDeleg

好的,所以我尝试了很多不同的方法

目前,我已将
UINavigationBar
与IB放在一起。然后用
IBOutlet
声明它

从那以后,无论我怎么努力,我似乎都无法改变标题。即使只是在
ViewDidLoad

此外,我不需要指定导航栏的代表,是吗

这是我的密码:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController < UITableViewDataSource, UITableViewDelegate>
{
    NSArray *myArrayOne;
    NSArray *myArrayTwo;
    UITextView *myTextView;
    UINavigationBar *myNavBar;   
}

@property (nonatomic, retain) NSArray *myArrayOne;
@property (nonatomic, retain) NSArray *myArrayTwo;
@property (nonatomic, retain) IBOutlet UITextView *myTextView;
@property (nonatomic, retain) IBOutlet UINavigationBar *myNavBar;


@end
更改标题的实际代码只是我尝试过的一种方法


还有别的办法吗?我是否需要将IB中的navigationbar与任何内容链接?

我认为您需要一个navigationController,而不是检查此链接:

如果你的应用程序代理中已经有导航控制器,那么你应该删除你创建的IBoutlet,然后使用:

self.navigationItem.title = @"Hi";

为此,将引用应用程序代理中的navigationController。

我认为您需要一个navigationController,为什么不检查此链接:

如果你的应用程序代理中已经有导航控制器,那么你应该删除你创建的IBoutlet,然后使用:

self.navigationItem.title = @"Hi";

为此,将引用应用程序代理中的navigationController。

如果您的导航栏没有导航控制器,则必须为其提供一个堆栈(在您的情况下,是一个由一个导航项组成的堆栈)

在视图控制器的
viewDidLoad
中,将视图控制器的导航项添加到堆栈中:

self.myNavBar.items = @[self.navigationItem];
现在您可以这样设置标题:

self.navigationItem.title = @"Hello"; 

它将出现在您的导航栏中

如果您有一个没有导航控制器的导航栏,则必须为其提供一个堆栈(在您的情况下,是一个由一个导航项组成的堆栈)

在视图控制器的
viewDidLoad
中,将视图控制器的导航项添加到堆栈中:

self.myNavBar.items = @[self.navigationItem];
现在您可以这样设置标题:

self.navigationItem.title = @"Hello"; 

它将出现在您的导航栏中

以上由jrturton提供的解决方案效果良好,除非您在UINavigationBar中还有UIBarButtonim(例如“完成”按钮)。在这种情况下,拟议的解决办法导致了uibarbuttonite的消失

下面介绍如何更改UINavigationBar标题,同时保留UIBarButtonim:

添加
ibuinavigationitem*myNavigationItem到您的代码

在IB中,在大纲视图(而不是故事板视图)中,右键单击包含的UIViewController并拖动到UINavigationBar中由IB自动创建的UINavigationItem,然后连接到
myNavigationItem


回到代码中,添加
self.myNavigationItem.title=@“Hello”

以上由jrturton提供的解决方案运行良好,除非您在UINavigationBar中还有UIBarButtonim(例如“完成”按钮)。在这种情况下,拟议的解决办法导致了uibarbuttonite的消失

下面介绍如何更改UINavigationBar标题,同时保留UIBarButtonim:

添加
ibuinavigationitem*myNavigationItem到您的代码

在IB中,在大纲视图(而不是故事板视图)中,右键单击包含的UIViewController并拖动到UINavigationBar中由IB自动创建的UINavigationItem,然后连接到
myNavigationItem



回到代码中,添加
self.myNavigationItem.title=@“Hello”

您只需在基于导航控制器的项目中使用self.title即可。。不起作用??我没法让它起作用。。。我可以在UITableView的DidSelectRowatineIndexPath中实现吗?还有。。我刚刚做了一个单视图应用程序。它只设置为视图控制器而不是导航控制器…您可以在基于导航控制器的项目中简单地使用self.title。。不起作用??我没法让它起作用。。。我可以在UITableView的DidSelectRowatineIndexPath中实现吗?还有。。我刚刚做了一个单视图应用程序。它只设置在一个视图控制器上,而不是一个导航控制器上……我当然可以创建一个UINavbar,而无需编程?否则,能够将导航栏放到情节提要上有什么意义呢?我认为您没有将nib文件中导航栏的委托链接到文件所有者,将UINavigationBarDelegate添加到uitableviewdelegate旁边的.h类中。好的,试试这个:UINavigationItem*item=[[UINavigationItem alloc]initWithTitle:@“一个标题”];theNavigationBar.items=[NSArray数组with object:item];[项目发布];我当然可以创建一个UINavbar,而不需要编程?否则,能够将导航栏放到情节提要上有什么意义呢?我认为您没有将nib文件中导航栏的委托链接到文件所有者,将UINavigationBarDelegate添加到uitableviewdelegate旁边的.h类中。好的,试试这个:UINavigationItem*item=[[UINavigationItem alloc]initWithTitle:@“一个标题”];theNavigationBar.items=[NSArray数组with object:item];[项目发布];这就是我想做的!非常感谢。然而。。我也没办法让它工作。我已经复制了您的代码,并将其放在ViewDidLoad中我的代码下面,但标题仍然保持不变。在界面中有什么我需要做的吗?比如将某物链接到某个地方并更改属性?也。。。我不熟悉“self”的语法。什么时候适用。[super viewDidLoad]应该是您在该方法中调用的第一件事,而不是最后一件事。2.您必须已经创建了导航栏的出口-您的代码中有self.navBar,所以我假设是这样。3. <代码>自我
意味着自我。这是objective-c中的一个基本概念,如果你不理解它,你需要回到一些基本教程。这就是我想要做的!非常感谢。然而。。我也没办法让它工作。我已经复制了您的代码,并将其放在ViewDiLoa中我的代码下面