Iphone 标题和栏按钮未显示在导航栏中

Iphone 标题和栏按钮未显示在导航栏中,iphone,ios,uitableview,uinavigationbar,title,Iphone,Ios,Uitableview,Uinavigationbar,Title,我在设置标题和向导航栏添加栏按钮时遇到了一些奇怪的困难 我的应用程序是一个选项卡式应用程序。问题在我的第一个标签内。第一个选项卡由UINavigationController组成,其中包含UITableViewController。从我的AppDelegate: UIViewController *firstViewController = [[MyTableViewController alloc] init]; UINavigationController *navigationContro

我在设置标题和向导航栏添加栏按钮时遇到了一些奇怪的困难

我的应用程序是一个选项卡式应用程序。问题在我的第一个标签内。第一个选项卡由UINavigationController组成,其中包含UITableViewController。从我的AppDelegate:

UIViewController *firstViewController = [[MyTableViewController alloc] init];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:firstViewController];

_tabBarController = [[TFTabBarController alloc] init];
_tabBarController.delegate = self;
_tabBarController.viewControllers = [NSArray arrayWithObjects:navigationController, nil];
在firstViewController中选择一行时,我在导航堆栈上推送UIWebViewController:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UIViewController *secondViewController = [[MyWebViewController alloc] init];
    [self.navigationController pushViewController:secondViewController animated:YES];
}
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSURL *url = [request URL];
    if (navigationType == UIWebViewNavigationTypeLinkClicked)
    {
        UIViewController *thirdViewController = [[MyTableViewController alloc] init];
        [self.navigationController pushViewController:thirdViewController animated:YES];

        return NO;
    }
    return YES;
}
在截取WebView中的超链接时,我在导航堆栈上推送另一个UITableView:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UIViewController *secondViewController = [[MyWebViewController alloc] init];
    [self.navigationController pushViewController:secondViewController animated:YES];
}
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSURL *url = [request URL];
    if (navigationType == UIWebViewNavigationTypeLinkClicked)
    {
        UIViewController *thirdViewController = [[MyTableViewController alloc] init];
        [self.navigationController pushViewController:thirdViewController animated:YES];

        return NO;
    }
    return YES;
}
当thirdViewController打开时,其导航栏仅包含带有上一视图标题的“后退”按钮,以便向后导航。其标题和右栏按钮未显示

以下是我尝试显示它们的方式:

self.title = @"My Title";

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Push me" style:UIBarButtonItemStylePlain target:self action:@selector(push)];
我还尝试通过navigationController设置按钮,但仍然没有成功:

self.navigationController.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Push me" style:UIBarButtonItemStylePlain target:self action:@selector(push)];

我在这里做错了什么?

检查
self.navigationItem
self.navigationController
在访问时是否为
nil

从文件中:

第一次访问属性时,将创建UINavigationItem对象。因此,如果未使用导航控制器显示视图控制器,则不应访问此属性


访问这些成员的好位置是在
-viewDidLoad
下,而不是在初始化时。

检查
self.navigationItem
self.navigationController
在访问时是否为
nil

从文件中:

第一次访问属性时,将创建UINavigationItem对象。因此,如果未使用导航控制器显示视图控制器,则不应访问此属性


访问这些成员的好地方是在
-viewDidLoad
下,而不是在初始化时。

谢谢!我已经在我的应用程序上工作了一段时间了,但有时仍在挣扎着把初始化的东西放在哪里。将我的代码移动到-viewDidLoad,它就像一个符咒:)有时它也会发生在我身上。。奇怪的是,
self.title=@“某物”不起作用,因为在-init中也应该起作用。这就是我一直想知道的,就像我在其他视图控制器中做的那样,不知怎的,这一个只出了问题…谢谢!我已经在我的应用程序上工作了一段时间了,但有时仍在挣扎着把初始化的东西放在哪里。将我的代码移动到-viewDidLoad,它就像一个符咒:)有时它也会发生在我身上。。奇怪的是,
self.title=@“某物”不起作用,因为在-init中也应该起作用..这让我一直在想,就像我在其他视图控制器中做的那样,不知怎的,它只在这一个中出错了。。。