buildByCupertino method
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),
);
}