In flutter I have this:
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Flutter Demo',
routes: <String, WidgetBuilder> {
'/Cards': (BuildContext context) => new PageSelectorDemo(),
},
onGenerateRoute: (RouteSettings settings) => new MaterialPageRoute(
builder: (BuildContext ctx) => new PageSelectorDemo(),
),
theme: new ThemeData(
primarySwatch: Colors.deepPurple,
),
home: new MyHomePage(title: 'Flutter View'),
);
}
}
In my iOS code I have this:
func getFlutterController() -> UIViewController?
{
self.flutterController = FlutterViewController(project: nil, nibName: nil, bundle: nil)
if let controller = self.flutterController
{
controller.setInitialRoute("/Cards") // setting the route
self.messageChannel = FlutterBasicMessageChannel.init(name: "channel", binaryMessenger: controller, codec: FlutterStandardMessageCodec.sharedInstance())
if let channel = self.messageChannel
{
channel.setMessageHandler() { (message:Any?, reply:FlutterReply) in
ViewController.counter += 1
self.labelMessage.text = "message recieved: \(ViewController.counter)"
}
}
}
return self.flutterController
}
Why doesn't this work? The flutter code just loads the initial view and not my view from the "/Cards" route.