小编Ror*_*ran的帖子

使用嵌套导航器进行 Flutter 向后滑动手势

我有一个主导航器可以推送其他子导航器,但是如果我从子导航器推送路线,在 iOS 上,当我从打开的小部件向后滑动时,它会返回到主导航器根,而不是转到子小部件的根,那么我如何首先使用滑动手势处理子导航器的历史记录,并仅当我在子导航器的根上(如单个导航器)时才允许返回主导航器?

这是主导航器:

class MenuNavigator extends StatelessWidget {
  final GlobalKey<NavigatorState> navigatorKey;

  const MenuNavigator({Key key, this.navigatorKey}) : super(key: key);

  WidgetBuilder routeBuilder(
      RouteSettings routeSettings, GetUserResponse userResponse) {
    switch (routeSettings.name) {
      case MenuNavigatorRoutes.root:
        return (context) => MenuPage();
      case MenuNavigatorRoutes.documents:
        return (context) => DocumentsNavigator();
      case MenuNavigatorRoutes.requests:
        return (context) => RequestsNavigator();
      default:
        return null;
    }
  }

  @override
  Widget build(BuildContext context) {
     return Navigator(
          key: navigatorKey,
          initialRoute: MenuNavigatorRoutes.root,
          onGenerateRoute: (routeSettings) {
            return MaterialPageRoute(
                settings: routeSettings,
                builder: (context) =>
                    routeBuilder(routeSettings, userResponse)(context));
          },
        );
  }
}
Run Code Online (Sandbox Code Playgroud)

DocumentsNavigator …

navigator swipe ios flutter

5
推荐指数
1
解决办法
1680
查看次数

iOS-如何使用uploadTask上传视频?

我需要将iPhone / iPad上的mp4视频文件上传到服务器(也在后台),所以我读到可以通过URLSession.uploadTask(with:URLRequest,fromFile:URL)方法来实现,但我不知道该怎么做我之前准备了请求,我需要创建一个multipart / form-data请求,因为我想附加其他字符串参数。

func requestBodyFor(video: URL) -> Data? {
    let url = URL(string: "url_of_upload_handler.php")!

    let parameters = ["type":"video", "user":"112"]

    do {

        let kBoundary = "Boundary-\(UUID().uuidString)"
        let kStartTag = "--%@\r\n"
        let kEndTag = "\r\n"
        let kContent = "Content-Disposition: form-data; name=\"%@\"\r\n\r\n"

        var body = Data()

        let videoData = try Data(contentsOf: video)

        // parameters
        for (key,value) in parameters {
            body.append(String(format: kStartTag, kBoundary).data(using: String.Encoding.utf8)!)
            body.append(String(format: kContent, key).data(using: String.Encoding.utf8)!)
            body.append(value.data(using: String.Encoding.utf8)!)
            body.append(String(format: kEndTag).data(using: String.Encoding.utf8)!)
        }

        //Video data
        body.append(String(format: kStartTag, boundary).data(using: String.Encoding.utf8)!) …
Run Code Online (Sandbox Code Playgroud)

ios nsurlsessionuploadtask swift3

1
推荐指数
1
解决办法
4949
查看次数

标签 统计

ios ×2

flutter ×1

navigator ×1

nsurlsessionuploadtask ×1

swift3 ×1

swipe ×1