FirstVC第一个页面
import 'package:flutter/material.dart';
import 'dart:ui';
import 'second.dart';
class FirstVC extends StatefulWidget {
const FirstVC({Key? key}) : super(key: key);
@override
State<FirstVC> createState() => _FirstVCState();
}
class _FirstVCState extends State<FirstVC> {
SecondVCController controller = SecondVCController();
handleSecond() {
print('调用controller');
controller.goReloadData();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('FirstVC'),
actions: [
TextButton(
onPressed: () {
handleSecond();
},
child: Text('切换',style: TextStyle(color: Colors.black),))
],
),
body: SecondVC(
controller: controller,
),
);
}
}
SecondVC第二个页面
import 'package:flutter/material.dart';
import 'dart:ui';
class SecondVCController extends ChangeNotifier {
goReloadData(){
print('发送信息');
notifyListeners();
}
}
class SecondVC extends StatefulWidget {
SecondVCController ?controller;
SecondVC({Key? key, this.controller}) : super(key: key);
@override
State<SecondVC> createState() => _SecondVCState();
}
class _SecondVCState extends State<SecondVC> {
String text = "aaa";
@override
void initState() {
if (widget.controller != null) {
widget.controller!.addListener(() {
print('接收到信息。自行处理');
setState(() {
text = "bbb";
});
});
}
super.initState();
}
@override
Widget build(BuildContext context) {
return Container(
child: Text(text),
);
}
}