Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从本机iOS设置初始路由_Ios_Swift_Flutter_Dart - Fatal编程技术网

如何从本机iOS设置初始路由

如何从本机iOS设置初始路由,ios,swift,flutter,dart,Ios,Swift,Flutter,Dart,我正在将颤振模块集成到ios本机项目中,我想从ios本机设置初始路由,但它不起作用,它使用默认路由。 ViewController.swift import UIKit import Flutter class ViewController: UIViewController { let flutterEngine = FlutterEngine(name: "test") override func viewDidLoad() { super.viewDi

我正在将颤振模块集成到ios本机项目中,我想从ios本机设置初始路由,但它不起作用,它使用默认路由。

ViewController.swift

import UIKit
import Flutter

class ViewController: UIViewController {

    let flutterEngine = FlutterEngine(name: "test")

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        flutterEngine.navigationChannel.invokeMethod("setInitialRoute", arguments:"/home")
        flutterEngine.run();

    }

    @IBAction func handleClick(_ sender: Any) {
        let flutterViewController = FlutterViewController(engine: flutterEngine, nibName: nil, bundle: nil)
        flutterViewController.setInitialRoute("/home")
        self.navigationController?.pushViewController(flutterViewController, animated: true)
    }

}
主飞镖

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  final _route = <String, WidgetBuilder>{
    "/login": (context) => Login(),
    "/home": (context) => Home()
  };

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      routes: _route,
      title: "App", // Title ของหน้า
      home: Scaffold(
        // หน้าจอหลัก
        appBar: AppBar(
          title: Text("App Navi"),
        ),
        body: Login(),
      ),
    );
  }
}
导入“包装:颤振/材料.省道”;
导入“包:flifter/services.dart”;
void main()=>runApp(MyApp());
类MyApp扩展了无状态小部件{
最终路线={
“/login”:(上下文)=>login(),
“/home”:(上下文)=>home()
};
@凌驾
小部件构建(构建上下文){
返回材料PP(
路线:_路线,
标题:“应用程序”,//标题ของหน้า
家:脚手架(
// หน้าจอหลัก
appBar:appBar(
标题:文本(“App Navi”),
),
正文:Login(),
),
);
}
}
登录,主文件请在图片中查看,因为stackoverflow无法发布文本“看起来您的帖子主要是代码,请添加更多详细信息。”


此问题现已修复,从颤振1.22开始,可使用以下方法完成:

初始化颤振引擎时:

let flutterEngine = FlutterEngine()
// FlutterDefaultDartEntrypoint is the same as nil, which will run main().
engine.run(
  withEntrypoint: FlutterDefaultDartEntrypoint, initialRoute: "/onboarding")
并且,在创建
视图控制器

 let flutterViewController = FlutterViewController(
    project: nil,
    initialRoute: "/onboarding",
    nibName: nil,
    bundle: nil)

将代码添加为文本,而不是Screenshots@DilanAnuruddha对不起,我已经编辑了帖子。嗨,如果我的答案对你有用,你可以把它标记为接受。