我是iOS开发人员,现在尝试Flutter。
作为标题,我想要实现的是使一个类像“ manager”那样工作,以在应用程序启动时控制我的页面路由。
例如,在iOS中,我可以在AppDelegate(didFinishedLaunchingWithOptions)/ ViewController(ViewDidLoad / Appear)中检查“布尔”,然后更改rootViewController或推送至所需的ViewController取决于“布尔”,例如将“ isLogin”而是推送到LoginViewController / LoggedViewController。
我知道我可以在用户交互上进行推送,例如听IconButton的onTap。但是我不知道如何“ 自动”。
据我所知,Flutter中的“ build(context)”类似于iOS中的“ viewDidLoad”,但是它专门针对UI,所以我可以在哪里放置逻辑?
答案 0 :(得分:2)
在InitState()中调用Navigator.push的一种方法:
@override
void initState() {
super.initState();
if(condition){
WidgetsBinding.instance.addPostFrameCallback((_) async {
Navigator.push(
context,
MaterialPageRoute(
builder: (BuildContext context) => NextPage()
)
);
});
}
}