Flutter开发之——IOS启动Flutter

@main

class AppDelegate:FlutterAppDelegate {

lazy var flutterEngine=FlutterEngine(name: “my flutter engine”)

override func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

flutterEngine.run();

return super.application(application, didFinishLaunchingWithOptions: launchOptions);

}

}

ViewController.swift

import UIKit

import Flutter

class ViewController: UIViewController {

override func viewDidLoad() {

super.viewDidLoad()

// Do any additional setup after loading the view.

}

@IBAction func jumpFlutter(_ sender: Any)

{

let flutterEngine = (UIApplication.shared.delegate as! AppDelegate).flutterEngine;

let flutterViewController = FlutterViewController(engine: flutterEngine, nibName: nil, bundle: nil)

present(flutterViewController, animated: true, completion: nil)

}

}

3.2 效果图

四 使用路由方式启动Flutter


4.1 代码ViewController.swift

import UIKit

import Flutter

class ViewController: UIViewController {

override func viewDidLoad() {

super.viewDidLoad()

// Do any additional setup after loading the view.

}

@IBAction func jumpFlutter(_ sender: Any)

{

let flutterEngine = FlutterEngine()

flutterEngine.run(withEntrypoint: nil, initialRoute: “/a”)

let flutterViewController = FlutterViewController(engine: flutterEngine, nibName: nil, bundle: nil)

present(flutterViewController, animated: true, completion: nil)

}

}

4.2 lib/main.dart

import ‘package:flutter/material.dart’;

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

class MyApp extends StatelessWidget {

// This widget is the root of your application.

@override

Widget build(BuildContext context) {

return MaterialApp(

title: ‘Flutter Demo’,

theme: ThemeData(

primarySwatch: Colors.blue,

),

routes: <String, WidgetBuilder>{

//“/”: (context) => MyHomePage(title: ‘Flutter Demo Home Page’),

‘/a’: (context) => MyPage(title: ‘Page A’),

‘/b’: (context) => MyPage(title: ‘Page B’)

},

//home: MyHomePage(title: ‘Flutter Demo Home Page’),

);

}

}

class MyPage extends StatelessWidget {

var title;

总结

其实要轻松掌握很简单,要点就两个:

  1. 找到一套好的视频资料,紧跟大牛梳理好的知识框架进行学习。
  2. 多练。 (视频优势是互动感强,容易集中注意力)

你不需要是天才,也不需要具备强悍的天赋,只要做到这两点,短期内成功的概率是非常高的。

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。下面资料部分截图是我花费几个月时间整理的,诚意满满:特别适合有3-5年开发经验的Android程序员们学习。

你不需要是天才,也不需要具备强悍的天赋,只要做到这两点,短期内成功的概率是非常高的。**

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。下面资料部分截图是我花费几个月时间整理的,诚意满满:特别适合有3-5年开发经验的Android程序员们学习。

[外链图片转存中…(img-WYmxwXTG-1720087696728)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值