Xcode6
Empty Application
새 프로젝트를 만들 때 템플릿 을 제거했습니다 . Xcode6
이전 버전 에서처럼 스토리 보드없이 빈 응용 프로그램을 어떻게 만들 수 있습니까?
Xcode6
Empty Application
새 프로젝트를 만들 때 템플릿 을 제거했습니다 . Xcode6
이전 버전 에서처럼 스토리 보드없이 빈 응용 프로그램을 어떻게 만들 수 있습니까?
답변:
XCode6
이전 버전과 같이 비어있는 애플리케이션을 직접 작성하기위한 버전 이상 에는 옵션이 없습니다 XCode5
. 그러나 Storyboard
다음 단계를 수행 하지 않고도 응용 프로그램을 만들 수 있습니다 .
Single View Application
.Main.storyboard
하고 LaunchScreen.xib
(선택하고 마우스 오른쪽 단추를 클릭 한 후 프로젝트에서 제거하거나 완전히 삭제하도록 선택하십시오).Info.plist
하십시오.스위프트 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
}
스위프트 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
}
목표 -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
항목을 좋아합니다 . 그것 없이는 앱이 더 큰 아이폰에서 전체 화면 크기를 차지하지 않습니다.
간단한 방법은 XCode 5
의 Empty Application
템플릿을 XCode
의 템플릿 디렉토리 에 복사하는 것 입니다.
당신은 다운로드 할 수 XCode 5
의 Empty Application
에서 템플릿을 여기에 그것을 압축을 풀고 다음과 복사 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/iOS/Application
디렉토리.
추신 :이 방법은 신속하게 작동합니다!
편집
아래 주석에서 @harrisg가 제안한대로 ~/Library/Developer/Xcode/Templates/Project Templates/iOS/Application/
Xcode가 업데이트 된 경우에도 사용할 수 있도록 위에 언급 된 템플릿을 폴더에 배치 할 수 있습니다.
그런 디렉토리가 존재하지 않는 경우 그리고, 당신은이 디렉토리 구조를 만들어야 할 수도 있습니다 : Templates/Project Templates/iOS/Application/
에~/Library/Developer/Xcode/
이 간단한 접근법을 사용하여 Empty Application
in 을 만들 수 있습니다 XCode 6
. (아래 첨부 된 스크린 샷)
도움이 되었기를 바랍니다!
몇 가지 단계를 더 수행해야합니다.
전체 튜토리얼은 다음과 같습니다.
내용이있는 지원 파일에 "[app name] -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 로 가서 didFinishLaunchingWithOptions 기능 에서 다음을 작성하십시오.
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
바로 위의 코드에서 자신의 ViewController로의 UIViewController를 교체.
XCode6 Beta를 사용하고 있으며 XCode5.xx의 빈 템플릿을 XCode6 Beta에 추가 하여이 문제의 다른 솔루션을 검색했습니다.
이 응용 프로그램에서 XCode5.xx를 마우스 오른쪽 버튼으로 클릭하면 '패키지 내용 표시'를 클릭하고 주어진 경로에서 '빈 응용 프로그램 .xctemplate'을 복사하십시오.
컨텐츠 / 개발자 / 플랫폼 /iPhoneOS.platform/ 개발자 / 라이브러리 / Xcode / 템플릿 / 프로젝트 템플릿 / 응용 프로그램
이제 창을 종료하고 XCode6에 대해 주어진 경로를 엽니 다.
컨텐츠 / 개발자 / 플랫폼 /iPhoneOS.platform/ 개발자 / 라이브러리 / Xcode / 템플릿 / 프로젝트 템플릿 / iOS / Application /
Application 폴더 안에 'Empty Application.xctemplate'을 붙여 넣습니다. 이제 종료하고 새 프로젝트를 만들어 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에 익숙해지기 전에 옛날로 돌아 가기 위해. 다음 단계가 도움이 될 수 있습니다.
plist에서 Application Scene Manifest를 삭제하십시오.
Application Scene Manifest.h 및 Application Scene Manifest.m을 삭제하십시오.
#pragma mark-APPdelegate.m의 UISceneSession 라이프 사이클에서 코드 삭제
@property (강하고 비원 자적) UIWindow * window 추가; APPdelegate.h에서