如何在iPad版Swift Playground中运行SwiftUI的Scene与App结构
问题原因
- 报错
No exact matches call 'setLiveView' instance method的核心原因是类型不匹配:PlaygroundSupport框架的setLiveView方法仅接收View或UIViewController类型的参数,你当前定义的Welcoming是遵循App协议的应用入口结构体,不存在匹配的方法签名没有对应参数类型,因此触发报错。
解决方案
提供两种适配iPad端Swift Playgrounds运行的写法,按需选择即可:
方案1:保留App完整生命周期结构
直接给Welcoming结构体添加@main入口标记即可直接运行,无需手动调用setLiveView:
import SwiftUI import PlaygroundSupport @main struct Welcoming:App { var body: some Scene { WindowGroup { TabView { Text("one") Text("two") } // 可选:添加分页样式实现滑动切换效果 .tabViewStyle(.page) } } }
方案2:手动调用setLiveView预览界面
如果只需要预览单界面效果,将界面封装为独立View后传给setLiveView即可:
import SwiftUI import PlaygroundSupport struct ContentView: View { var body: some View { TabView { Text("one") Text("two") } .tabViewStyle(.page) } } PlaygroundPage.current.setLiveView(ContentView())
额外提醒
你当前代码里的文本tow为拼写错误,正确拼写为two。
内容的提问来源于stack exchange,提问作者Raymond Redington
相关产品推荐
相关产品推荐

