为什么我必须在实现自定义左barButtonItem之前隐藏按钮项?

时间:2013-12-31 05:03:54

标签: objective-c uinavigationcontroller uinavigationitem

这是我的代码,用于删除导航栏的后UIBarButtonItem并将其替换为取消按钮:

UIBarButtonItem *cancelButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.hidesBackButton = YES;
self.navigationItem.leftBarButtonItem = cancelButtonItem;

我在网上看到的每个例子都没有在用自定义项替换之前隐藏backButton。我可能错了,但它似乎只是一行不必要的代码。

2 个答案:

答案 0 :(得分:1)

您是否尝试以UIBarButtonSystemItemCancel的格式使用UIBarButtonItemStylePlain代替UIBarButtonItem

试试这个,

    UIBarButtonItem* cancelButton = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelAction)];
    self.navigationItem.leftBarButtonItem = cancelButton;

此外,如果您在self.navigationItem.backBarButtonItem中使用了parentViewController,则默认情况下,如果未正确添加childViewController中的自定义leftBarButton,它将在childViewController的leftBarButtonItem中显示该按钮。

答案 1 :(得分:0)

试试这个。 在您的应用程序中写下这个代表确实完成了启动。

LoginViewController *loginVc = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
        self.navigationController = [[UINavigationController alloc] initWithRootViewController:loginVc];

    self.window.rootViewController = self.navigationController;
    self.navigationController.navigationBarHidden =YES;

// and use uibutton in your view controller at place of back button or cancel button
// and u can push or pop your view from there.