SwiftUI 预览页面,可绑定 URL?
Posted
技术标签:
【中文标题】SwiftUI 预览页面,可绑定 URL?【英文标题】:SwiftUI preview page, bindable URL? 【发布时间】:2020-07-24 08:32:41 【问题描述】:在我的AdminView_Previews
上,我正在尝试显示我的AdminView
,并且需要从视图中传递一个名为userInfo
的UserModel
类型的可绑定对象。
UserModel
有一个名为 immagine
的变量来自 URL?
这是我的预览:
struct AdminView_Previews: PreviewProvider
static var previews: some View
Group
NavigationView
AdminView(dm: DataManager(), userInfo: bindModelUserInfo())
NavigationView
AdminView(dm: DataManager(), userInfo: bindModelUserInfo())
.previewDisplayName("Test")
.background(Color(.systemBackground))
.environment(\.colorScheme, .dark)
我的bindingModelUserInfo()
:
func bindModelUserInfo() -> Binding<UserModel?>
var variabile : UserModel = UserModel(username: "dm1886", email: "dsadsa@gmail.com", userID: "test", adminLevel: "user", immagine: nil )
let boolVariableBinding : Binding<UserModel?> = Binding(get: variabile ,
set: variabile = $0! )
return boolVariableBinding
如果我将 nil 传递给 immagine
,则无法加载预览。
知道如何解决这个问题吗?如何将URL
immagine
传递给预览版?
在模拟器应用上一切正常。
【问题讨论】:
在Mutable Binding in SwiftUI Live Preview看到我的回答,应该会有帮助的。 【参考方案1】:你可以创建一个@State 变量,像这样输入到 userInfo 中。
struct AdminView_Previews: PreviewProvider
@State var mockUserInfo: UserModel = UserModel(username: "dm1886",
email: "dsadsa@gmail.com",
userID: "test",
adminLevel: "user",
immagine: nil)
static var previews: some View
Group
NavigationView
AdminView(dm: DataManager(), userInfo: $mockUserInfo)
NavigationView
AdminView(dm: DataManager(), userInfo: $mockUserInfo)
.previewDisplayName("Test")
.background(Color(.systemBackground))
.environment(\.colorScheme, .dark)
您也可以分享您的AdminView
的代码吗?变量immagine
可能不起作用,因为您需要处理AdminView
内的URL?
的情况。我不知道你的AdminView
里面有什么,但是当immagine
为零时处理路径以返回EmptyView
可以解决问题。
【讨论】:
以上是关于SwiftUI 预览页面,可绑定 URL?的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI Xcode 11 beta 7 @Binding for collections 正在打破预览