iOS15 中后退按钮的 headerTintColor 被忽略(react-navigation v5)

     2023-03-15     179

关键词:

【中文标题】iOS15 中后退按钮的 headerTintColor 被忽略(react-navigation v5)【英文标题】:headerTintColor ignored for back button in iOS15 (react-navigation v5) 【发布时间】:2021-10-08 16:41:10 【问题描述】:

后退按钮的值 headerTintColor 在 iOS 15 中被忽略,而是使用系统标准蓝色。 Title 和 Header Right 按钮仍然尊重我传入的值。我正在使用 react-navigation v5,如果可以避免的话,我现在正试图避免升级到 v6。 (而且我不知道这是否发生在 v6 中?)。这发生在设备和模拟器上。

iOS 15(通过模拟器): screenshot from iOS 15 showing blue-colored back button

iOS screenshot from iOS 13 showing white colored back button

 <Stack.Navigator
      initialRouteName="EventList"
      screenOptions=gestureEnabled: true>
      <Stack.Screen
        name="EventListScreen"
        component=EventTabs
        options=(navigation) => (
          title: parametersBand.APP_NAME,
          headerTintColor: colors.NAV_TEXT_COLOR,
          headerStyle: styles.navBar,
          headerTitleStyle: styles.navBarTextStyle,
          headerTitleAllowFontScaling: false,
          headerRight: () => (
            <HeaderRightContainer>
              <HeaderRightButton
                onPress=() =>
                  analytics()
                    .logEvent('extras')
                    .then(() => navigation.navigate('Extras'))
                
                hitSlop=hitSlop>
                <FontAwesome name="bars" style=styles.navBarButtonHamburger />
              </HeaderRightButton>
            </HeaderRightContainer>
          ),
          headerBackAllowFontScaling: false,
          headerBackTitle: null,
          headerBackTitleVisible: false,
          backgroundColor: colors.PRIMARY,
          borderBottomWidth: 0,
        )
      />
      <Stack.Screen
        name="EventDetailScreen"
        component=EventDetail
        options=(route, navigation) => (
          title: route.params.event.title,
          headerTintColor: colors.NAV_TEXT_COLOR,
          headerStyle: styles.navBar,
          headerTitleStyle: styles.navBarTextStyle,
          headerTitleAllowFontScaling: false,
          headerRight: () => (
            <HeaderRightContainer>
              <HeaderRightButton
                onPress=() =>
                  analytics()
                    .logEvent('setlist', 
                      event: `$route.params.event.YYYYMMDD $route.params.event.altName`,
                    )
                    .then(() =>
                      showBrowser(
                        navigation,
                        route.params.event.setlistURL,
                        parametersBand.SETLIST_TITLE,
                      ),
                    )
                
                hitSlop=hitSlop>
                <HeaderRightButtonText
                  style=styles.navBarButtonRight
                  allowFontScaling=false>
                  Setlist
                </HeaderRightButtonText>
              </HeaderRightButton>
            </HeaderRightContainer>
          ),
          headerBackAllowFontScaling: false,
          headerBackTitle: null,
          headerBackTitleVisible: false,
          backgroundColor: colors.PRIMARY,
          borderBottomWidth: 0,
        )
      />
</Stack.Navigator>

还有其他人遇到并解决过这个问题吗?

【问题讨论】:

【参考方案1】:

我确定你现在已经解决了这个问题,但以防万一其他人遇到这个问题,就像我刚刚做的那样。

后退按钮的色调由主题处理,因此您可以覆盖 theme.colors.primary 以更改按钮和标题文本的色调。

<NavigationContainer theme=
  ...DefaultTheme,
  colors: 
    ...DefaultTheme.colors,
    primary: 'custom color here'
  
>
  ...
</NavigationContainer>

【讨论】:

以编程方式调用 iOS 上的导航控制器后退按钮

】以编程方式调用iOS上的导航控制器后退按钮【英文标题】:ProgrammaticallycallnavigationcontrollerbackbuttononiOS【发布时间】:2011-01-0715:36:15【问题描述】:在基于UINavigationController的iPhone应用程序中,我希望在一种方法中执行相当于按... 查看详情

IOS - 如何使默认的后退按钮调用展开segue

】IOS-如何使默认的后退按钮调用展开segue【英文标题】:IOS-howtomakedefaultBackbuttoninvokeunwindsegue【发布时间】:2014-04-2409:15:06【问题描述】:是否可以让默认导航“返回”按钮调用展开转场?我知道可以通过将标准按钮拖到绿色退... 查看详情

更改后退按钮 iOS 中箭头的颜色

】更改后退按钮iOS中箭头的颜色【英文标题】:ChangecolourofarrowinBackButtoniOS【发布时间】:2013-12-1312:16:44【问题描述】:我正在尝试更改导航栏中后退按钮的箭头颜色。我已经能够更改文本颜色,但不能更改箭头。这是我更改文... 查看详情

iOS导航控制器中的后退按钮回调

】iOS导航控制器中的后退按钮回调【英文标题】:backbuttoncallbackinnavigationControlleriniOS【发布时间】:2011-07-1005:36:07【问题描述】:我已将视图推送到导航控制器上,当我按下后退按钮时,它会自动转到上一个视图。在将视图从堆... 查看详情

如何在iOS中调整后退按钮的y轴

】如何在iOS中调整后退按钮的y轴【英文标题】:howtoadjusty-axisofbackbuttoniniOS【发布时间】:2016-11-1011:02:42【问题描述】:我创建了一个自定义导航控制器子类UINavigationController。现在,当我增加导航栏的大小时,后退按钮也会向下... 查看详情

如何在 Xamarin ios 中获取导航栏后退按钮的大小?

】如何在Xamarinios中获取导航栏后退按钮的大小?【英文标题】:HowtogetthenavigationbarbackbuttonsizeinXamarinios?【发布时间】:2017-08-0208:38:04【问题描述】:我想在View类中获取导航返回按钮的大小。我怎样才能做到这一点?我可以通过... 查看详情

在 iOS 8 上隐藏后退按钮

】在iOS8上隐藏后退按钮【英文标题】:HidebackbuttononiOS8【发布时间】:2015-12-0105:13:29【问题描述】:这是我的Storyboard的片段:因为开头有一个NavigationController,所以每个视图控制器中都会显示一个默认的后退按钮,这是正确的。... 查看详情

后退按钮与按钮轮廓一起出现

】后退按钮与按钮轮廓一起出现【英文标题】:Backbuttonappearswithbuttonoutline【发布时间】:2014-02-2110:10:36【问题描述】:我正在开发一个支持iOS6到最新iOS版本的应用程序。当我在Xcode5中运行应用程序并选择目标为iOS7时;有时,导... 查看详情

iOS 在 UINavigationController 项中显示箭头后退按钮

】iOS在UINavigationController项中显示箭头后退按钮【英文标题】:iOSDisplayarrowbackbuttoninUINavigationControlleritem【发布时间】:2011-12-0518:56:14【问题描述】:我想在单击UINavigationController项上的后退按钮时收到通知。所以,我创建了一个... 查看详情

在ios中点击后退按钮后调用啥方法

】在ios中点击后退按钮后调用啥方法【英文标题】:Whatmethodiscalledaftertapbackbuttoninios在ios中点击后退按钮后调用什么方法【发布时间】:2013-04-0507:49:24【问题描述】:我有2个带有导航控制器的视图控制器。当我在第二个中使用[se... 查看详情

iOS 11 UINavigationBar 后退按钮图像颜色问题

】iOS11UINavigationBar后退按钮图像颜色问题【英文标题】:iOS11UINavigationBarBackbuttonimagecolorissue【发布时间】:2017-11-2809:39:16【问题描述】:我在iOS11中遇到了自定义BackButtonImage颜色的问题。BackButtonImage在iOS11更低的版本中可以正常工... 查看详情

iOS 禁用 NavigationController 后退按钮的动画

】iOS禁用NavigationController后退按钮的动画【英文标题】:iOSdisableanimationforNavigationControllerbackbutton【发布时间】:2015-11-0510:20:40【问题描述】:当我在NavigationController中使用后退按钮弹出ViewController时,我想禁用动画。我试过了:ov... 查看详情

iOS 7 UINavigationBar 隐藏了后退按钮

】iOS7UINavigationBar隐藏了后退按钮【英文标题】:iOS7UINavigationBarhashiddenbackbutton【发布时间】:2013-11-0616:31:03【问题描述】:我有一个应用程序,它的UINavigationBars中有一个带有自定义图像的后退按钮。在iOS6中一切都很好,但在iOS7... 查看详情

iOS 7后退按钮符号?

】iOS7后退按钮符号?【英文标题】:iOS7BackButtonSymbol?【发布时间】:2013-09-1201:22:37【问题描述】:我真的很喜欢iOS7中后退按钮箭头的形状,并且想在我的一个UIButtons上使用它,但我喜欢>而不是【问题讨论】:teehanlax.com/tools/i... 查看详情

尝试在 iOS 中处理“后退”导航按钮操作

】尝试在iOS中处理“后退”导航按钮操作【英文标题】:Tryingtohandle"back"navigationbuttonactioniniOS【发布时间】:2013-09-2009:02:36【问题描述】:我需要检测用户何时点击导航栏上的“返回”按钮,以便在发生这种情况时执行一... 查看详情

iOS 5中缺少navigationController栏后退按钮

】iOS5中缺少navigationController栏后退按钮【英文标题】:navigationControllerbarbackbuttonmissinginiOS5【发布时间】:2011-11-1522:27:07【问题描述】:我升级到XCode4.2。当我的应用在iOS4.0模拟器中运行时,导航栏会显示在被推入的多个视图上。... 查看详情

iOS后退按钮完全变黑

】iOS后退按钮完全变黑【英文标题】:iOSbackbuttonturnstotallyblack【发布时间】:2016-09-1213:23:34【问题描述】:在我的应用测试过程中,只有2人表示他们的后退按钮完全变黑,如下图所示:我在互联网上搜索过,但没有找到类似的... 查看详情

导航栏项目中未显示标题和后退按钮(iOS 7)

】导航栏项目中未显示标题和后退按钮(iOS7)【英文标题】:Titleandbackbuttonnotshowinginnavigationbaritem(iOS7)【发布时间】:2013-10-1120:44:23【问题描述】:我刚开始为iOS7编写代码,无法让标题和后退按钮出现在导航项中。什么可能导... 查看详情