[iOS] The "More" tab shows the title and icon of the 5th tab.

オープン
#619 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 2 日以内に返信

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
58/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
ios, react-native, typescript
領域
mobile

調査の方向性

Start by locating the iOS tab bar code that sets the title, accessibility label, and selected icon, then trace how it handles the system-created “More” tab when there are more than five screens. Reproduce with the six-tab sample from the issue and check the unselected, selected, and VoiceOver states. Done means the More tab consistently shows its own title and icon in all three states.

索引モデルが issue の本文から書いたものです。

説明

bug
Before submitting a new issue
  • I tested using the latest version of the library, as the bug might be already fixed.
  • I tested using a supported version of react native.
  • I checked for possible duplicate issues, with possible answers.
Bug summary

With more than 5 tabs, iOS shows 4 tabs and a "More" tab that opens a list of the other tabs. The system draws the "More" tab with the "•••" icon and the label "More".

With this library, the "More" tab takes the title and the selected icon of the 5th tab.
In the sample code below, the 5th tab is Profile, with a person icon:

  1. When the "More" tab is not selected, it shows the correct "•••" icon, but the label "Profile".
  2. When the "More" tab is selected, it shows the person icon and the label "Profile". This also happens if you open Settings from the "More" list, so the tab bar shows Profile as the open tab.

VoiceOver also reads the "More" tab as "Profile". The normal icon stays correct because SwiftUI sets it. The library sets only the title, the accessibility label, and the selected icon.

Library version

1.5.0

Environment info
System:
  OS: macOS 27.0.1
  Shell: 5.9 - /bin/zsh
Binaries:
  Node: 24.20.0
  Yarn: 1.22.22
  npm: 11.19.0
  Watchman: 2026.07.27.00
Managers:
  CocoaPods: 1.17.0
SDKs:
  iOS SDK:
    Platforms: DriverKit 27.0, iOS 27.1, macOS 27.0, tvOS 27.0, visionOS 27.0, watchOS 27.0
IDEs:
  Xcode: 27.1/27A9275
npmPackages:
  expo: 58.0.16
  react: 19.3.0
  react-native: 0.88.0
  react-native-bottom-tabs: 1.5.0
  "@bottom-tabs/react-navigation": 1.5.0
  "@react-navigation/native": 7.5.1
  react-native-screens: 4.30.0
  react-native-safe-area-context: 5.10.1
iOS:
  hermesEnabled: true
  newArchEnabled: true
Steps to reproduce
  1. Create a tab navigator with 6 or more tabs.
  2. Look at the last tab in the tab bar.
  3. Tap the last tab, then tap Settings in the "More" list.

Expected: in step 2, the last tab shows "•••" and the label "More". In step 3, it shows the "More" icon and label.

Actual: in step 2, the last tab shows "•••" and the label "Profile". In step 3, it shows the person icon and the label "Profile".

Image

https://github.com/user-attachments/assets/82fc4b62-b35e-422a-a2e1-fb633d04be5f

Reproducible sample code
import { NavigationContainer } from '@react-navigation/native';
import { createNativeBottomTabNavigator } from '@bottom-tabs/react-navigation';
import { Text, View } from 'react-native';

const Tab = createNativeBottomTabNavigator();

const TABS = [
  ['Home', 'house'],
  ['Markets', 'chart.bar'],
  ['Options', 'slider.horizontal.3'],
  ['Blocks', 'square.grid.2x2'],
  ['Profile', 'person.crop.circle.fill'],
  ['Settings', 'gearshape.fill'],
];

function Screen({ route }) {
  return (
    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
      <Text>{route.name}</Text>
    </View>
  );
}

export default function App() {
  return (
    <NavigationContainer>
      <Tab.Navigator>
        {TABS.map(([name, sfSymbol]) => (
          <Tab.Screen
            key={name}
            name={name}
            component={Screen}
            options={{ tabBarIcon: () => ({ sfSymbol }) }}
          />
        ))}
      </Tab.Navigator>
    </NavigationContainer>
  );
}
主要言語
TypeScript
スター
1.5k
フォーク
112
平均マージ
2日 3時間
マージ済み PR(30日)
13

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

callstack/react-native-bottom-tabs のほかの issue

callstack/react-native-bottom-tabs の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。