// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'package:flutter/cupertino.dart'; /// Flutter code sample for [showCupertinoModalPopup]. void main() => runApp(const ModalPopupApp()); class ModalPopupApp extends StatelessWidget { const ModalPopupApp({super.key}); @override Widget build(BuildContext context) { return const CupertinoApp( theme: CupertinoThemeData(brightness: Brightness.light), restorationScopeId: 'app', home: ModalPopupExample(), ); } } class ModalPopupExample extends StatelessWidget { const ModalPopupExample({super.key}); @override Widget build(BuildContext context) { return CupertinoPageScaffold( navigationBar: const CupertinoNavigationBar( middle: Text('Home'), ), child: Center( child: CupertinoButton( onPressed: () { Navigator.of(context).restorablePush(_modalBuilder); }, child: const Text('Open Modal'), ), ), ); } @pragma('vm:entry-point') static Route<void> _modalBuilder(BuildContext context, Object? arguments) { return CupertinoModalPopupRoute<void>( builder: (BuildContext context) { return CupertinoActionSheet( title: const Text('Title'), message: const Text('Message'), actions: <CupertinoActionSheetAction>[ CupertinoActionSheetAction( child: const Text('Action One'), onPressed: () { Navigator.pop(context); }, ), CupertinoActionSheetAction( child: const Text('Action Two'), onPressed: () { Navigator.pop(context); }, ), ], ); }, ); } }