Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在此设置中,是否有方法在导航栏中获取标准后退按钮?_Iphone_Ios_Xcode_Uinavigationbar_Back Button - Fatal编程技术网

Iphone 在此设置中,是否有方法在导航栏中获取标准后退按钮?

Iphone 在此设置中,是否有方法在导航栏中获取标准后退按钮?,iphone,ios,xcode,uinavigationbar,back-button,Iphone,Ios,Xcode,Uinavigationbar,Back Button,我有一个基于标签栏的应用程序。 但是用户可以从一个屏幕转到没有选项卡栏的更详细的视图 详细屏幕的顶部有一个导航栏,右侧有一个简单的按钮,作为导航栏的一部分。(我已经在IB中的bar button项中创建了导航栏和右按钮,并将其连接到插座) 然而,由于我必须从这个屏幕返回,我喜欢使用标准导航栏添加标准的后退按钮。(我可以在IB中手动添加它,但我没有现成的标准映像,我认为使用标准会“更智能”) 这是我在SettingsVC1中创建详图视图(SettingsVC2)的地方: SettingsVC2 *

我有一个基于标签栏的应用程序。 但是用户可以从一个屏幕转到没有选项卡栏的更详细的视图

详细屏幕的顶部有一个导航栏,右侧有一个简单的按钮,作为导航栏的一部分。(我已经在IB中的bar button项中创建了导航栏和右按钮,并将其连接到插座)

然而,由于我必须从这个屏幕返回,我喜欢使用标准导航栏添加标准的后退按钮。(我可以在IB中手动添加它,但我没有现成的标准映像,我认为使用标准会“更智能”)

这是我在SettingsVC1中创建详图视图(SettingsVC2)的地方:

SettingsVC2 *settingsVC2 = [[SettingsVC2 alloc] initWithNibName:@"SettingsVC2" bundle:nil selectedTCNumber:tcNumber];
settingsVC2.delegate = self;
UIBarButtonItem *temporaryBarButtonItem = [[UIBarButtonItem alloc] init];
temporaryBarButtonItem.title = @"Back";
settingsVC2.navigationItem.backBarButtonItem = temporaryBarButtonItem;
settingsVC2.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentViewController:settingsVC2 animated:YES completion:nil];   
当导航栏本身出现在SettingsVC2中时,导航栏中不会出现后退按钮

这是SettingsVC2本身中的代码:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil selectedNumber: (NSInteger) numberx
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        self.tabBarItem.image = [UIImage imageNamed:@"settings"];
        self.view.backgroundColor = [UIColor whiteColor];
        self.tableView.opaque = TRUE;

        navBar.tintColor = [UIColor colorFromRGBIntegers:W_COLOR_R green:W_COLOR_G blue:W_COLOR_B alpha:W_COLOR_A];
        navBar.topItem.title =  NSLocalizedString(@"Settings2", @"Settings2");

        UIBarButtonItem *temporaryBarButtonItem = [[UIBarButtonItem alloc] init];
        temporaryBarButtonItem.title = @"Back";
     /*
        self.navigationItem.backBarButtonItem = temporaryBarButtonItem;
        [self.navigationItem.backBarButtonItem setEnabled:YES];
        [self.navigationItem.backBarButtonItem setStyle:UIBarButtonItemStyleDone];
      */
        navBar.topItem.backBarButtonItem = temporaryBarButtonItem;
    }
    return self;
}
此代码和注释掉的代码都不会显示“后退”按钮

是否有一种“标准”方式来获取“后退”按钮(在我的情况下不使用UINavigationController),还是我只需手动将其添加到IB中并获取相应的背景图像?


非常感谢

必须将backbuttonItem添加到第一个视图,而不是第二个视图。这门课很难理解。无论如何,我使用以下两种方法设置并清除后退按钮标题:

- (void)defaultBackButtonTitle
{   
    UIBarButtonItem *temporaryBarButtonItem = [UIBarButtonItem new];
    [temporaryBarButtonItem setTitle:@"Back"];
    self.navigationItem.backBarButtonItem = temporaryBarButtonItem;
}

- (void)clearBackButtonTitle
{   
    self.navigationItem.backBarButtonItem = nil;
}

当您按下viewController时,您将调用第一个按钮,您希望返回按钮,当您获得viewController时,第二个按钮将出现(在第一个俯视图控制器中)。

实际上,这并不会使它出现-我认为如果使用UINavigationController,这会起作用-我不这样做-谢谢@用户387184您不能通过创建
UINavigationController
并使用
settingsVC2
作为根视图控制器初始化它,然后显示导航控制器来轻松解决此问题吗?仅供参考。。最后,我只是将IB中的一个按钮拖到导航栏的左角-连接到。。至少这样做没有任何问题。。。