热门标签 | HotTags
当前位置:  开发笔记 > IOS > 正文

SwiftUI中UISplitViewController的相等性是什么

如何解决《SwiftUI中UISplitViewController的相等性是什么》经验,为你挑选了1个好方法。

我需要实现一个与iPad和iPhone中默认Mail应用程序接近的UI。

该应用程序有两个部分,通常,主视图将显示在iPad的左侧,详细视图将显示在iPad的右侧。

在电话中,主视图将显示在整个屏幕上,详细信息视图可以作为第二个屏幕推送。

如何在新的SwiftUI中实现它



1> cbjeukendrup..:

SwiftUI中实际上没有SplitView,但是使用以下代码会自动完成您描述的内容:

import SwiftUI

struct MyView: View {
    var body: some View {
        NavigationView {
            // The first View inside the NavigationView is the Master
            List(1 ... 5, id: \.self) { x in
                NavigationLink(destination: SecondView(detail: x)) {
                    Text("Master\nYou can display a list for example")
                }
            }
            .navigationBarTitle("Master")
            // The second View is the Detail
            Text("Detail placeholder\nHere you could display something when nothing from the list is selected")
                .navigationBarTitle("Detail")
        }
    }
}

struct SecondView: View {
    var detail: Int
    var body: some View {
        Text("Now you are seeing the real detail View! This is detail \(detail)")
    }
}

这也是为什么.navigationBarTitle()应将修饰符应用于NavigationView 的视图,而不是应用于NavigationView本身的原因。

奖励:如果您喜欢splitView navigationViewStyle,则可以.navigationViewStyle(StackNavigationViewStyle())在NavigationView上应用修饰符。

编辑:我发现NavigationLink有一个isDetailLink(Bool)修饰符。默认值显示为true,因为默认情况下,“目标”显示在详细信息视图(右侧)中。但是,当您将此修饰符设置为时false,目标将作为主节点显示(在左侧)。


推荐阅读
author-avatar
乌龟考拉互受
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有