我isLoggedIn
在 ObservableObject 类中有一个已发布的变量,如下所示:
import Combine
class UserAuth: ObservableObject{
@Published var isLoggedIn: Bool = false
}
Run Code Online (Sandbox Code Playgroud)
我想在特定视图 (LoginView) 中将此变量更新为 true。此变量决定了我向用户显示的视图,具体取决于用户是否已登录:
struct ContentView: View {
@ObservedObject var userAuth = UserAuth()
var body: some View {
Group{
if(userAuth.isLoggedIn){
MainView()
}else{
AccountView()
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
因为userAuth.isLoggedIn是false(我还没登录)AccountView就显示出来了。
账户视图:
struct AccountView: View {
@State private var toggleSheet = false
var body: some View {
VStack {
Spacer()
Button(action: {
self.toggleSheet.toggle()
}){
Text("Toggle Modal")
.padding()
.foregroundColor(Color.white)
.background(Color.blue)
.cornerRadius(10)
}
.sheet(isPresented: self.$toggleSheet){
LoginView()
}
Spacer() …
Run Code Online (Sandbox Code Playgroud) 我在我的 Xcode 项目中添加了一个自定义 URL 方案(我使用的是 SwiftUI)。
在 AppDelagate 文件中,我添加了:
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
print(url.absoluteString)
print("work")
return true
}
Run Code Online (Sandbox Code Playgroud)
当我在模拟器或物理设备中访问 Safari (sampleurlscheme://) 时,代码没有被执行(即日志不显示等),但它把我带到了应用程序。
有什么我遗漏的或者这可能是一个错误吗?
在上图中,id 喜欢更改-02:49
为一种颜色,例如Color.blue
我试过了:
struct ContentView: View {
var body: some View {
PlayerView().accentColor(Color.blue)
}
}
Run Code Online (Sandbox Code Playgroud)
我还尝试将它添加到实际的 PlayerView 中,如下所示:
struct PlayerView: View {
var body: some View {
VStack{
....
}.navigationBarTitle(Text(“-2:49”))
.accentColor(.blue)
}
}
Run Code Online (Sandbox Code Playgroud)
我也试过:
struct PlayerView: View {
var body: some View {
VStack{
....
}.navigationBarTitle(Text(“-2:49”).foregroundColor(.blue))
}
}
Run Code Online (Sandbox Code Playgroud) 尝试部署Web应用程序时出现以下错误:
错误-网站XXX的容器XXX_0在预期的期限内未启动。经过的时间= 1800.4463925秒
我正在尝试部署节点应用程序。对.deployment文件使用自动部署。.deployment文件如下所示:
# 1. KuduSync
if [[ "$IN_PLACE_DEPLOYMENT" -ne "1" ]]; then
"$KUDU_SYNC_CMD" -v 50 -f "$DEPLOYMENT_SOURCE" -t "$DEPLOYMENT_TARGET" -n "$NEXT_MANIFEST_PATH" -p "$PREVIOUS_MANIFEST_PATH" -i ".git;.hg;
.deployment;deploy.sh"
exitWithMessageOnError "Kudu Sync failed"
fi
# 2. Select node version
selectNodeVersion
# 3. Install npm packages for root directory
if [ -e "$DEPLOYMENT_TARGET/package.json" ]; then
cd "$DEPLOYMENT_TARGET"
# echo "Running $NPM_CMD install --production for root directory"
# eval $NPM_CMD install --production
echo "Running $NPM_CMD install --production for root directory"
eval $NPM_CMD install …
Run Code Online (Sandbox Code Playgroud) 我在 a 内的循环内部有一个VStack
with 对齐,并且对齐参数没有得到尊重。如果我有一个循环外部,则正在使用对齐参数并且视图会正确显示。.leading
ForEach
ScrollView
VStack
ForEach
ScrollView{
// THIS DISPLAYS CORRECTLY
VStack(alignment: .leading){
Text("namename")
.font(.headline)
.lineLimit(1)
Text("namename name")
.font(.subheadline)
.lineLimit(1)
}
.padding()
.frame(minWidth: 0, maxWidth: .infinity)
.background(Color.gray.opacity(0.20))
.cornerRadius(5)
.padding(.bottom)
ForEach(self.list_of_names, id: \.self) { item in
// THIS DOES NOT DISPLAY CORRECTLY
VStack(alignment: .leading){
Text(item)
.font(.headline)
.lineLimit(1)
Text(item + " name")
.font(.subheadline)
.lineLimit(1)
}
.frame(minWidth: 0, maxWidth: .infinity)
.background(Color.gray.opacity(0.20))
.cornerRadius(5)
.padding(.bottom)
}
}
.padding()
Run Code Online (Sandbox Code Playgroud)
第一行对齐正确,位于ForEach
循环外部,同时其他行位于循环内部。蓝线代表我突出显示循环VStack
内的每条线ForEach
我使用的是Microsoft Bot框架(4.x),我们已经设置了虚拟助手以及一些技能。当前,我们正在尝试让用户以某种特定技能打断当前对话,然后跳到新对话。我们想要添加功能,然后使我们能够跳回到用户放弃上一个现有技能的地方。
我的问题是,是否有可能将信息从技能传递给在整个对话过程中始终存在的虚拟助手?该信息将是字符串列表或类似性质的东西
有没有办法在 WatchOS 上使用 SwiftUI 使用 TabView?
我看过大部分 WWDC 的演讲,但他们没有提到 WatchOS。此外,在苹果文档中,它没有在 SDK 下枚举。
每当我尝试将它添加到 WatchOS 项目时,我都会收到以下错误:
'TabView' is unavailable in watchOS
或者是否有复制所需 TabView 的好方法?
WKHostingController
我正在尝试在 SwiftUI WatchOS 项目中使用多个。
我希望能够从 1 个控制器变为 3 个控制器。
用户将按下第一个按钮ContentView(1)
(与 配对HostingController(1)
),然后将其导航到 3 组集中的中间控制器HC3
(或HostingController3
,带有标识符HC3
)
代码如下:
struct ContentView: View {
var body: some View {
VStack{
NavigationLink(destinationName: "HC3"){
Text("Go to other wk")
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
主机控制器:
class HostingController: WKHostingController<AnyView> {
override var body: AnyView {
return AnyView(ContentView())
}
}
Run Code Online (Sandbox Code Playgroud)
这确实带我到HC3
但我无法导航到HC2
或HC4
创建用户可以在HC2
、HC3
和之间滚动的多个页面视图HC4
。HostingController 2-4 都有与上面类似的 HostingController 和 ContentView。
我还确定了HC2
和 …
有没有办法禁用此屏幕?我还不想运行生产版本。
编辑:在create-react-app下,您可以选择进行开发构建或生产构建。它们分别在端口:3000或:5000上运行。在生产版本下,发生错误时将禁用此屏幕。在开发版本中,当发生错误或即将发生崩溃时,将显示此屏幕。问题是我想在开发版本BUT下运行此程序,而不会在出现错误时显示此错误屏幕。为什么不只解决错误?我要去,但是因为这是面向客户的,所以我不希望在发生错误时显示此屏幕。
swiftui ×6
swift ×5
watchos-6 ×3
swift5 ×2
watchos ×2
xcode ×2
apple-watch ×1
azure ×1
botframework ×1
c# ×1
chatbot ×1
javascript ×1
next.js ×1
node.js ×1
reactjs ×1
swiftui-list ×1