标签: xcode11

UIHostingController 和 navigationController

默认 swift 项目,视图控制器嵌入在 navigationController 中并推送到下一个 UIHostingController。

如何从 SimpleView 调用 navigationController?.popViewController ?

视图控制器:

@IBOutlet weak var button: UIButton?

override func viewDidLoad() {
    super.viewDidLoad()
    button?.addTarget(self,
                      action: #selector(showNewSwiftUIController),
                      for: .touchUpInside)
}

@objc func showNewSwiftUIController() {
    let vc = UIHostingController(rootView:SimpleView())
    navigationController?.pushViewController(vc, animated: true)
}
Run Code Online (Sandbox Code Playgroud)

斯威夫特用户界面:

struct SimpleView: View {
    var body: some View {
        Text("SimpleView")
            .foregroundColor(.black)
    }
}
Run Code Online (Sandbox Code Playgroud)

swift swiftui xcode11

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

如何在swiftUI中忽略具有线性渐变的背景的安全区域?

使用 SwiftUI,我知道如何在整个屏幕上设置一个简单颜色的背景。所以只有后台忽略安全区域。但是当我想用线性渐变来做这件事时,我不知道这样做。

我的观点有一个简单的背景:

import SwiftUI

struct Settings : View {
  var body: some View {
    ScrollView {
        VStack {
          Text("Boussole")
            .color(Color(red: 52/255, green: 73/255, blue: 94/255, opacity: 1.0))
            .multilineTextAlignment(.leading)
            .font(.system(size: 28))
            .padding(.top, 15)
            .frame(minWidth: 0, maxWidth: .infinity, alignment: .leading)
          Toggle(isOn: .constant(false)) {
            Text("Afficher le vrai nord")
              .font(.system(size: 20))
              .color(Color(red: 52/255, green: 73/255, blue: 94/255, opacity: 1.0))
          }
          .padding(.top, 10)
          Toggle(isOn: .constant(true)) {
            Text("Activer la vibration")
              .font(.system(size: 20))
              .color(Color(red: 52/255, green: 73/255, blue: 94/255, opacity: 1.0))
          }
          .padding(.top, 10)
          .padding(.bottom, 20) …
Run Code Online (Sandbox Code Playgroud)

xcode gradient swift swiftui xcode11

6
推荐指数
2
解决办法
5589
查看次数

SwiftUI / CoreData / Master / Detail(带编辑)/ Xcode 11 - Beta 5

处理示例应用程序。目标是从 Master 中的 CoreData 中提取一个列表,然后单击一个列表以转到详细信息,您可以在其中编辑信息并保存。当您在细节中编辑“名称”时,它不仅会更新细节以反映更改,而且还会反映母版上的更改。我已经尝试了很多方法来实现这一点,但到目前为止还没有找到答案。

// Code generation is turned OFF in the xcdatamodeld file

public class EntityName: NSManagedObject, Identifiable {
   @NSManaged public var name: String
   @NSManaged public var active: Bool
}

extension EntityName {
    static func allEntityNameFetchRequest() -> NSFetchRequest<EntityName> {
        let request: NSFetchRequest<EntityName> = EntityName.fetchRequest() as! NSFetchRequest<EntityName>
        request.sortDescriptors = [NSSortDescriptor(key: "name", ascending: true)]
        return request
   }
}


struct MasterView: View {

    @Environment(\.managedObjectContext) var managedObjectContext
    @FetchRequest(fetchRequest: EntityName.allEntityNameFetchRequest()) var allEntityNames: FetchedResults<EntityName>


    var body: some View {
        NavigationView {
            List {
                ForEach(self.allEntityNames) …
Run Code Online (Sandbox Code Playgroud)

core-data swiftui xcode11

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

在两个视图之间传递数据

我想在 watchOS 6 上创建一个安静的简单应用程序,但是在 Apple 更改了 Xcode 11 beta 5 中的 ObjectBindig 之后,我的应用程序不再运行。我只是想在两个视图之间同步数据。

所以我用新的@Published 重写了我的应用程序,但我无法真正设置它:

class UserInput: ObservableObject {

    @Published var score: Int = 0
}

struct ContentView: View {
    @ObservedObject var input = UserInput()
    var body: some View {
        VStack {
            Text("Hello World\(self.input.score)")
            Button(action: {self.input.score += 1})
                {
                    Text("Adder")
                }
            NavigationLink(destination: secondScreen()) {
                Text("Next View")
            }

        }

    }
}

struct secondScreen: View {
    @ObservedObject var input = UserInput()
    var body: some View {
        VStack {
            Text("Button has been pushed …
Run Code Online (Sandbox Code Playgroud)

ios13 swiftui xcode11

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

如何将 SwiftUI 导航栏标题对齐以居中?

如何在 SwiftUI 中居中导航栏标题?

var body: some View {
    NavigationView {
        .navigationBarTitle("Todo Lists")
    }
}
Run Code Online (Sandbox Code Playgroud)

ios13 swiftui xcode11

6
推荐指数
2
解决办法
7399
查看次数

Swift 5 (Xcode 11 Betas 5 &amp; 6) - 如何写入 JSON 文件?

多年来,这个问题已经被问过很多次了,但它在 Swift 5 中再次发生变化,尤其是在最近的两个测试版中。

读取 JSON 文件似乎很简单:

func readJSONFileData(_ fileName: String) -> Array<Dictionary<String, Any>> {

    var resultArr: Array<Dictionary<String, Any>> = []

    if let url = Bundle.main.url(forResource: "file", withExtension: "json") {

        if let data = try? Data(contentsOf: url) {

            print("Data raw: ", data)

            if let json = try? (JSONSerialization.jsonObject(with: data, options: []) as! NSArray) {

                print("JSON: ", json)

                if let arr = json as? Array<Any> {

                    print("Array: ", arr)

                    resultArr = arr.map { $0 as! Dictionary<String, Any> …
Run Code Online (Sandbox Code Playgroud)

filesystems xcode ios swift xcode11

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

为什么 URLSession.DataTaskPublisher 不发布值?

在 Xcode 11 beta 5 或 6 中,我现有的依赖于URLSession.DataTaskPublisher停止工作的代码。似乎DataTaskPublisher永远不会发布任何值,但我不知道为什么。

我已经尝试过.sink.handleEvents作为订阅者。我已经与Just发布者一起测试了 .sink并确认它在那里收到了一个值。

我也试过给DataTaskPublisheraURL和给它 a URLRequest。我尝试了对 API 的请求,包括授权标头,以及对 google.com 和 apple.com 的基本请求。我尝试使用URLSession.shared和创建URLSession. 我也试过使用和不使用mapanddecode运算符。

我已经使用XCTest期望来确认测试每次都会超时,即使我给它 4 分钟的超时。

我刚刚创建了一个新的示例项目,并在根视图控制器中使用以下代码复制了问题:

override func viewDidLoad() {
        super.viewDidLoad()

        print("view did load")

        URLSession.shared.dataTaskPublisher(for: URL(string: "http://apple.com")!)
            .handleEvents(receiveSubscription: { (sub) in
                print(sub)
            }, receiveOutput: { (response) in
                print(response)
            }, receiveCompletion: { (completion) in
                print(completion)
            }, receiveCancel: { …
Run Code Online (Sandbox Code Playgroud)

swift xcode11 combine

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

如何修复复制/粘贴 Xcode 上损坏的缩进

将 xcode 升级到 v.11 后,当我复制/粘贴代码时,缩进消失了。下面的示例显示了我复制代码时的外观。有人知道如何解决这个问题吗?

public func configure(_ view: WithdrawelView) {
        view.paySumLabel.text = self.pay
        view.expensesSumLabel.text = self.expenses
        view.refundSumLabel.text = self.refund
        view.taxLastYearSumLabel.text = self.taxLastYear
        view.futureWithdrawelSumLabel.text = self.futureWithdrawel
        view.balanceSumLabel.text = self.balance
    }
public func configure(_ view: WithdrawelView) {
           view.paySumLabel.text = self.pay
           view.expensesSumLabel.text = self.expenses
           view.refundSumLabel.text = self.refund
           view.taxLastYearSumLabel.text = self.taxLastYear
           view.futureWithdrawelSumLabel.text = self.futureWithdrawel
           view.balanceSumLabel.text = self.balance
       }
Run Code Online (Sandbox Code Playgroud)

auto-indent swift xcode11

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

如何为 MacOS 创建 WKWebView 应用程序

我在 IOS App Store 中有一个用 XCode 开发的 HTML5 应用程序,我希望为 Mac App Store 创建该应用程序的副本。我认为这很容易,但我找不到任何简单的教程可以遵循,当然不是使用 XCode 11 和 Swift 5.1。我不想走 Mac OS 10.15 中提供的自动路线

当我构建 XCode 11 附带的默认 Hello World 应用程序时,它无法在 10.14 上运行!我还不想升级到 10.15,主要是因为我希望该应用程序能够在早期版本的 MacOS 上运行

任何能为我提供 WKWebView 应用程序加载本地文件(在 Max OS 10.14 上的 XCode 11 中运行)的工作示例的人都将是我的英雄。

macos html5-apps xcode11

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

Mac Catalyst 和 iOS 13.5

我目前从 Xcode 11.5 收到一个奇怪的警告(我使用的是发行版):

Mac Catalyst 部署目标“IPHONEOS_DEPLOYMENT_TARGET”设置为 13.5,但支持的部署目标版本范围为 13.1 到 13.4.99。

我进行了网络搜索,但没有看到任何人提到此消息。

现在,我可以将我的部署设置回 iOS 13.0(我没有在我的项目中使用 iOS 13.5 中的任何特殊功能),但是想知道为什么会发出这个特殊警告?当然,Apple 还没有决定停止对 Mac Catalyst 的支持,是吗?

xcode ios xcode11 mac-catalyst

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