Xcode6
ได้ลบEmpty Application
แม่แบบเมื่อสร้างโครงการใหม่ เราจะสร้างแอปพลิเคชั่นที่ว่างเปล่า (ไม่มีสตอรี่บอร์ด) Xcode6
ขึ้นไปเช่นในเวอร์ชันก่อนหน้าได้อย่างไร
Xcode6
ได้ลบEmpty Application
แม่แบบเมื่อสร้างโครงการใหม่ เราจะสร้างแอปพลิเคชั่นที่ว่างเปล่า (ไม่มีสตอรี่บอร์ด) Xcode6
ขึ้นไปเช่นในเวอร์ชันก่อนหน้าได้อย่างไร
คำตอบ:
ไม่มีตัวเลือกในXCode6
และรุ่นที่สูงกว่าสำหรับการสร้างแอปพลิเคชันที่ว่างเปล่าเช่นเดียวกับในXCode5
และก่อนหน้านี้โดยตรง แต่เรายังสามารถสร้างแอปพลิเคชันโดยไม่ต้องStoryboard
ทำตามขั้นตอนเหล่านี้:
Single View Application
สร้างMain.storyboard
และLaunchScreen.xib
(เลือกพวกเขาคลิกขวาและเลือกที่จะลบออกจากโครงการหรือลบออกอย่างสมบูรณ์)Info.plist
ไฟล์Swift 3 ขึ้นไป:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool
{
self.window = UIWindow(frame: UIScreen.main.bounds)
self.window?.backgroundColor = UIColor.white
self.window?.makeKeyAndVisible()
return true
}
Swift 2.x:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
{
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window?.backgroundColor = UIColor.whiteColor()
self.window?.makeKeyAndVisible()
return true
}
Objective-C:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.rootViewController = [[ViewController alloc] init];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
LaunchScreen.xib
และInfo.plist
รายการที่เกี่ยวข้อง หากไม่มีมันแอปจะไม่ใช้ขนาดหน้าจอทั้งหมดใน iPhone ขนาดใหญ่ซึ่งน่าเกลียด
วิธีการง่ายๆที่จะคัดลอกXCode 5
's Empty Application
แม่แบบXCode
ของแม่แบบไดเรกทอรี
คุณสามารถดาวน์โหลดXCode 5
's Empty Application
แม่แบบจากที่นี่แล้วเปิดเครื่องรูดมันและคัดลอกไปยัง/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/iOS/Application
ไดเรกทอรี
PS วิธีนี้ใช้ได้กับรวดเร็วเช่นกัน!
แก้ไข
ตามที่แนะนำโดย @harrisg ในความคิดเห็นด้านล่างคุณสามารถวางแม่แบบที่กล่าวถึงข้างต้นใน~/Library/Developer/Xcode/Templates/Project Templates/iOS/Application/
โฟลเดอร์เพื่อให้สามารถใช้งานได้แม้ว่า Xcode จะได้รับการปรับปรุง
และถ้าไม่มีไดเรกทอรีปัจจุบันเช่นนั้นคุณอาจต้องสร้างโครงสร้างไดเรกทอรีนี้Templates/Project Templates/iOS/Application/
ใน~/Library/Developer/Xcode/
โดยใช้วิธีการแบบนี้ผมสามารถที่จะสร้างในEmpty Application
XCode 6
(ภาพหน้าจอที่แนบมาด้านล่าง)
หวังว่านี่จะช่วยได้!
มีอีกไม่กี่ขั้นตอนที่คุณต้องทำ:
ดังนั้นนี่คือการสอนแบบเต็ม:
เพิ่มไฟล์ "[ชื่อแอพ] -Prefix.pch" เพื่อรองรับไฟล์ที่มีเนื้อหา:
#import <Availability.h>
#ifndef __IPHONE_3_0
#warning "This project uses features only available in iOS SDK 3.0 and later."
#endif
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#endif
เพิ่ม "$ SRCROOT / $ PROJECT_NAME / [ชื่อไฟล์ pch]" ในการตั้งค่าโครงการ -> การตั้งค่าการสร้าง -> Apple LLVM 6.0 - ภาษา -> "คำนำหน้าส่วนหัว"
ใช้application:didFinishLaunchingWithOptions:
วิธีการ:
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
//Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
คำตอบ Akhils ถูกต้องทั้งหมด สำหรับพวกเราที่ใช้ Swift มันจะเป็นเช่นนี้:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window?.backgroundColor = UIColor.whiteColor()
self.window?.makeKeyAndVisible()
return true
}
Xcode 9.3.1และSwift 4
หลังจากขั้นตอนนั้นไปที่AppDelegate.swiftและในฟังก์ชั่นก็ทำการFinishLaunchingWithOptions แล้วเขียนสิ่งต่อไปนี้:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
window = UIWindow(frame: UIScreen.main.bounds)
window?.makeKeyAndVisible()
window?.rootViewController = UINavigationController(rootViewController: ViewController())
return true
}
Xcode 11.2.1และSwift 5
หลังจากขั้นตอนที่ไปSceneDelegateและฟังก์ชั่นในฉากเขียนต่อไปนี้:
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
// Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
// If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
// This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
guard let windowScene = (scene as? UIWindowScene) else { return }
window = UIWindow(frame: windowScene.coordinateSpace.bounds)
window?.windowScene = windowScene
window?.rootViewController = ViewController()
window?.makeKeyAndVisible()
}
มีอีกหนึ่งขั้นตอนที่คุณต้องทำคือ:
1) ลบชื่อฐานไฟล์กระดานเรื่องราวหลักในไฟล์ plist
//AppDelegate.h
@property (strong, nonatomic) UIViewController *viewController;
@property (strong, nonatomic) UINavigationController *nav;
//AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {`enter code here`
// Override point for customization after application launch.
CGRect screenBounds = [[UIScreen mainScreen] bounds];
UIWindow *window = [[UIWindow alloc] initWithFrame:screenBounds];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.viewController = [[UIViewController alloc] initWithNibName:@"ViewController" bundle:nil];
self.nav = [[UINavigationController alloc] initWithRootViewController:self.viewController];
[window setRootViewController: self.nav];
[window makeKeyAndVisible];
[self setWindow:window];
return YES;
}
อัปเดต: Swift 5 และ iOS 13:
SceneDelegate.swift
และเปลี่ยนfunc scene
จาก:func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
// Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
// If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
// This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
guard let _ = (scene as? UIWindowScene) else { return }
}
ถึง
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
// Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
// If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
// This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).x
if let windowScene = scene as? UIWindowScene {
let window = UIWindow(windowScene: windowScene)
window.rootViewController = ViewController()
self.window = window
window.makeKeyAndVisible()
}
}
ลบไฟล์ Main.storyboard
สิ่งนี้สามารถลบได้
อัพเดตไฟล์ ProjectName-Info.plist
ลบ Main storyboard base file name
คีย์
สร้างไฟล์ปลายปากกาและเชื่อมโยงไปยังตัวควบคุมมุมมองของโครงการ
1. สร้างไฟล์ปลายปากกา (ไฟล์ -> ใหม่ -> ไฟล์ -> ดู)
2. อัปเดต File's Owner's
คลาสเป็นสิ่งที่เรียกว่าตัวควบคุมมุมมองของโครงการ
3. เชื่อมโยงFile's Owner's
view
ทางออกกับview
วัตถุในไฟล์ปลายปากกา
อัปเดตตัวแทนแอป
1. นำเข้าไฟล์ส่วนหัวของมุมมองของโครงการ
2. อัปเดต:didFinishLaunchingWithOptions:
วิธีการสมัคร:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
MyViewController *viewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
self.window.rootViewController = viewController;
[self.window makeKeyAndVisible];
return YES;
}
สำหรับและXcode 8
Swift 3
เพียงแค่ลบ.storyboard
ไฟล์มันจะลบการอ้างอิงที่เกี่ยวข้องโดยอัตโนมัติจากคุณ.plist
และในการAppDelegate.swift
เพิ่มรหัสต่อไปนี้ของคุณ
let initialViewController = UIViewController() initialViewController.view.backgroundColor = .white window = UIWindow(frame: UIScreen.main.bounds) window?.rootViewController = initialViewController window?.makeKeyAndVisible()
คุณสามารถเขียน ViewCountroller แบบกำหนดเองของคุณเองและใช้ในการAppDelegate.swift
เป็นของคุณself.window?.rootViewController
เพียงแค่แทนที่ UIViewController ด้วย ViewController ของคุณเองในรหัสข้างต้น
ฉันใช้ XCode6 Beta & ฉันค้นหาวิธีแก้ไขปัญหาอื่นโดยเพิ่มเทมเพลตเปล่าจาก XCode5.xx ไปยัง XCode6 Beta
สำหรับการคลิกขวาบน XCode5.xx ในแอปพลิเคชันคลิก 'แสดงเนื้อหาแพ็คเกจ' และคัดลอก 'Empty Application.xctemplate' จากเส้นทางที่กำหนด
เนื้อหา / ผู้พัฒนา / แพลตฟอร์ม / iPhoneOS.platform / ผู้พัฒนา / ห้องสมุด / Xcode / แม่แบบ / แม่แบบโครงการ / แอปพลิเคชัน
ตอนนี้ออกจากหน้าต่างและเปิดเส้นทางที่กำหนดสำหรับ XCode6
เนื้อหา / ผู้พัฒนา / แพลตฟอร์ม / iPhoneOS.platform / ผู้พัฒนา / ห้องสมุด / Xcode / แม่แบบ / แม่แบบโครงการ / iOS / แอปพลิเคชัน /
วาง 'Empty Application.xctemplate' ในโฟลเดอร์ Application ตอนนี้รีสตาร์ท XCode6 โดยการออกและสร้างโครงการใหม่ คุณจะได้รับตัวเลือก 'แอปพลิเคชันที่ว่างเปล่า'
ตอนนี้เมื่อฉันกำลังสร้างโครงการใหม่ที่ว่างเปล่าไฟล์. pch เพิ่มโดยอัตโนมัติในโครงการ (ซึ่งเราจะต้องเพิ่มด้วยตนเองใน XCode6)
หวังว่ามันจะทำงาน
ใช่หรือเพียงแค่ใช้หนึ่งในเบต้าก่อนหน้านี้เพื่อสร้างมันขึ้นมาและดำเนินการกับเวอร์ชันล่าสุดหลังจากนั้น
คุณสามารถสร้างเทมเพลตโครงการของคุณเองสำหรับ Xcode สำหรับคำขอของคุณคุณสามารถใช้เทมเพลตในเว็บไซต์นี้:
คนอื่น ๆ ได้อธิบายวิธีกำจัดกระดานเรื่องราวออกไปแล้วดังนั้นฉันจะข้ามไปที่กระดานเรื่องราวที่นี่ นี่คือวิธีที่ฉันต้องการทำในรหัสของฉันด้วยการผูกมัดตัวเลือกน้อย (เขียนใน Swift 3.1):
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let window = UIWindow(frame: UIScreen.main.bounds)
window.backgroundColor = .white
window.rootViewController = MyRootViewController()
window.makeKeyAndVisible()
self.window = window
return true
}
อัปเดตใน Xcode 11 และ ios 13 หลังจากคุณตั้งค่าทุกอย่างแล้ว แต่ยังเห็นหน้าจอสีดำนั่นเป็นเพราะ UISceneDelegate จัดการวงจรชีวิตและเมื่อคุณสร้างโครงการใหม่มันจะสร้าง UISceneDelegate.m และ UISceneDelegate.h โดยอัตโนมัติ เพื่อย้อนกลับไปสู่อดีตก่อนที่เราจะคุ้นเคยกับ UISceneDelegate ขั้นตอนต่อไปนี้อาจช่วยได้:
ลบ Application Scene Manifest ด้วย Plist
ลบ Application Scene Manifest.h และ Application Scene Manifest.m
ลบรหัสภายใต้เครื่องหมาย #pragma - UISceneSession lifecycle ใน APPdelegate.m
เพิ่ม @property (strong, nonatomic) หน้าต่าง UIWindow *; ใน APPdelegate.h