buildByCupertino method

  1. @override
Widget buildByCupertino(
  1. BuildContext context
)

build on cupertino mode (Flutter implementation)

Implementation

@override
Widget buildByCupertino(BuildContext context) {
  // Convert BaseNavigationBarAction to CNNavigationBarAction for iOS
  final leadingActions = valueOf('leading', leading);
  final trailingActions = valueOf('trailing', trailing);

  List<CNNavigationBarAction>? cnLeading;
  List<CNNavigationBarAction>? cnTrailing;

  if (leadingActions != null) {
    cnLeading = (leadingActions as List)
        .map((action) =>
            (action as BaseNavigationBarAction).toCNNavigationBarAction())
        .toList();
  }

  if (trailingActions != null) {
    cnTrailing = (trailingActions as List)
        .map((action) =>
            (action as BaseNavigationBarAction).toCNNavigationBarAction())
        .toList();
  }

  // Check if this is a search navigation bar
  final searchConf = valueOf('searchConfig', searchConfig);
  if (searchConf != null) {
    return CNNavigationBar.search(
      leading: cnLeading,
      trailing: cnTrailing,
      searchConfig: searchConf,
      tint: valueOf('tint', tint),
      transparent: valueOf('transparent', transparent),
      largeTitle: valueOf('largeTitle', largeTitle),
      height: valueOf('height', height),
      titleSize: valueOf('titleSize', titleSize),
      onTitlePressed: valueOf('onTitlePressed', onTitlePressed),
    );
  }

  return CNNavigationBar(
    leading: cnLeading,
    title: valueOf('title', title),
    trailing: cnTrailing,
    tint: valueOf('tint', tint),
    transparent: valueOf('transparent', transparent),
    largeTitle: valueOf('largeTitle', largeTitle),
    height: valueOf('height', height),
    titleSize: valueOf('titleSize', titleSize),
    onTitlePressed: valueOf('onTitlePressed', onTitlePressed),
    segmentedControlLabels:
        valueOf('segmentedControlLabels', segmentedControlLabels),
    segmentedControlSelectedIndex: valueOf(
        'segmentedControlSelectedIndex', segmentedControlSelectedIndex),
    onSegmentedControlValueChanged: valueOf(
        'onSegmentedControlValueChanged', onSegmentedControlValueChanged),
    segmentedControlHeight:
        valueOf('segmentedControlHeight', segmentedControlHeight),
    segmentedControlTint:
        valueOf('segmentedControlTint', segmentedControlTint),
    segmentedControlLabelSize:
        valueOf('segmentedControlLabelSize', segmentedControlLabelSize),
  );
}