発生している問題
Trigged Segueでボタンを押したら遷移するようにしたはずなのですが、なぜかXcodeでRunしないとウインドウは表示されますがViewControllerが表示されません。
エラーはありません。
スクリーンショット:
ソースコード
・NewViewController.swift(問題のボタンがあるViewControllerです)
Swift
1// 2// NewViewController.swift 3// Run 4// 5// Created by ________ ________ on 5/14/20. 6// Copyright © 2020 ________ ________. All rights reserved. 7// 8 9import Cocoa 10 11class NewViewController: NSViewController { 12 13 @IBOutlet weak var name: NSTextField! 14 @IBOutlet weak var path: NSPopUpButton! 15 @IBOutlet weak var createProject: NSTextField! 16 17 var filePath = "" 18 var folderPath = "" 19 20 override func viewDidLoad() { 21 super.viewDidLoad() 22 // Do view setup here. 23 24 notCreateProject.isHidden = true 25 } 26 27 override func prepare(for segue: NSStoryboardSegue, sender: Any?) { 28 if segue.identifier == "new" { 29 notCreateProject.isHidden = true 30 31 if name.stringValue.isEmpty { 32 notCreateProject.isHidden = false 33 return 34 } 35 36 var savePath = "/Users/(NSUserName() + "/" + path.selectedItem!.title + "/" + name.stringValue)" 37 if path.selectedItem!.title == NSUserName() { 38 savePath = "/Users/(NSUserName())/(name.stringValue)" 39 } else if path.selectedItem!.title == "デスクトップ" { 40 savePath = "/Users/(NSUserName())/Desktop/(name.stringValue)" 41 } else if path.selectedItem!.title == "書類" { 42 savePath = "/Users/(NSUserName())/Documents/(name.stringValue)" 43 } else if path.selectedItem!.title == "アプリケーション" { 44 savePath = "/Users/(NSUserName())/Applications/(name.stringValue)" 45 } else if path.selectedItem!.title == "ダウンロード" { 46 savePath = "/Users/(NSUserName())/Downloads/(name.stringValue)" 47 } else if path.selectedItem!.title == "ムービー" { 48 savePath = "/Users/(NSUserName())/Movies/(name.stringValue)" 49 } else if path.selectedItem!.title == "ミュージック" { 50 savePath = "/Users/ (NSUserName())/Music/(name.stringValue)" 51 } else if path.selectedItem!.title == "ピクチャ" { 52 savePath = "/Users/(NSUserName())/Pictures/(name.stringValue)" 53 } 54 55 print(savePath) 56 do { 57 try createDir(savePath) 58 } catch { 59 notCreateProject.isHidden = false 60 return 61 } 62 do { 63 try writeTextFile("<!DOCTYPE html>\n<html>\n <head>\n <title>Hello World</title>\n </head>\n <body>\n Hello World!\n </body>\n</html>", fileName: "index.html", path: savePath) 64 } catch { 65 notCreateProject.isHidden = false 66 return 67 } 68 self.filePath = name.stringValue + "/index.html" 69 self.folderPath = savePath 70 71 print(self.filePath) 72 73 // Editorに値渡し 74 let editor = segue.destinationController as! Editor 75 editor.pathString = self.filePath 76 editor.folderPath = self.folderPath 77 editor.name = self.name.stringValue 78 editor.preVC = "n" 79 } 80 } 81 82 func writeTextFile(_ str: String, fileName: String, path: String) throws { 83 84 // 作成するテキストファイルの名前 85 let textFileName = fileName 86 let initialText = str 87 88 let documentDirectoryFileURL = path 89 90 // ディレクトリのパスにファイル名をつなげてファイルのフルパスを作る 91 let targetTextFilePath = documentDirectoryFileURL + "/" + textFileName 92 93 print("書き込むファイルのパス: (targetTextFilePath)") 94 95 do { 96 try initialText.write(to: URL(fileURLWithPath: targetTextFilePath), atomically: true, encoding: String.Encoding.utf8) 97 } catch let error as NSError { 98 print("failed to write: (error)") 99 throw NSError(domain: "failed to write: (error)", code: 870, userInfo: nil) 100 } 101 } 102 103 func createDir(_ dirPath: String) throws { 104 // ディレクトリを作成します。 105 let fileManager = FileManager.default 106 do { 107 try fileManager.createDirectory(atPath: dirPath, withIntermediateDirectories: true, attributes: nil) 108 } catch let error { 109 // エラーの場合 110 throw NSError(domain: "エラーが発生しました。ディレクトリの作成に失敗しました。(error)", code: -5, userInfo: nil) 111 } 112 } 113 114} 115
Editor.swift
swift
1// 2// Editor.swift 3// Run 4// 5// Created by ________ ________ on 5/14/20. 6// Copyright © 2020 ________ ________. All rights reserved. 7// 8 9import Cocoa 10import WebKit 11import AVKit 12import CoreImage 13 14class Editor: NSViewController, NSPathControlDelegate, NSTableViewDelegate, NSTableViewDataSource, NSTextViewDelegate, NSTextDelegate, WKUIDelegate { 15 16 @IBOutlet weak var path: NSPathControl! 17 @IBOutlet weak var Editor: NSTextView! 18 @IBOutlet weak var runView: WKWebView! 19 @IBOutlet weak var tableView: NSTableView! 20 @IBOutlet weak var player: AVPlayerView! 21 @IBOutlet weak var imageView: NSImageView! 22 @IBOutlet weak var scView: NSScrollView! 23 @IBOutlet weak var titleLabel: NSTextField! 24 @IBOutlet weak var customImageView: NSView! 25 @IBOutlet weak var sizeLabel: NSTextField! 26 27 var pathString: String? 28 var folderPath: String? 29 var name = "" 30 var selectedName = "" 31 var preVC = "" 32 33 var files: [String] = [] 34 35 override func viewDidLoad() { 36 super.viewDidLoad() 37 // Do view setup here. 38 39 do { 40 let contentUrls = try FileManager.default.contentsOfDirectory(at: URL(fileURLWithPath: folderPath!), includingPropertiesForKeys: nil) 41 files = contentUrls.map{$0.lastPathComponent} 42 } catch let error { 43 print(error) 44 } 45 46 Editor.delegate = self 47 path.delegate = self 48 } 49 50 // 省略 51} 52
知りたいこと
なぜこうなるのかと、解決方法が知りたいです。
回答お願いします。
あなたの回答
tips
プレビュー