Xcode6Empty Applicationyeni bir proje oluştururken şablonu kaldırdı . Xcode6Önceki sürümlerde olduğu gibi, içinde ve üstünde nasıl boş bir uygulama (Storyboard olmadan) oluşturabiliriz ?
Xcode6Empty Applicationyeni bir proje oluştururken şablonu kaldırdı . Xcode6Önceki sürümlerde olduğu gibi, içinde ve üstünde nasıl boş bir uygulama (Storyboard olmadan) oluşturabiliriz ?
Yanıtlar:
XCode6Sürümlerde XCode5ve daha önceki sürümlerde olduğu gibi doğrudan Boş Uygulama oluşturma seçeneği yoktur . Ama yine de Storyboardşu adımları takip etmeden bir uygulama oluşturabiliriz :
Single View Application.Main.storyboardve LaunchScreen.xib(onları seçin, sağ tıklayın ve projeden kaldırmayı veya tamamen silmeyi seçin).Info.plist.Swift 3 ve üzeri:
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
}
Amaç-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.xibve ilgili Info.plistgirişi seviyorum . Bu olmadan, uygulama çirkin olan daha büyük iPhone'larda tüm ekran boyutunu kaplamaz.
Basit bir yaklaşım kopyalamak olacaktır XCode 5'ın Empty Applicationşablon için XCode' s şablonları dizin.
Sen indirebilirsiniz XCode 5'ın Empty Applicationşablonu burada bunun unzip sonra ve kopyalamak /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/iOS/Applicationdizindeki.
Not: Bu yaklaşım da hızlı çalışıyor!
Düzenle
@harrisg tarafından aşağıdaki yorumda önerildiği gibi, yukarıda belirtilen şablonu ~/Library/Developer/Xcode/Templates/Project Templates/iOS/Application/klasöre yerleştirebilirsiniz, böylece Xcode güncellense bile kullanılabilir olabilir.
Böyle dizin mevcut olup olmadığını, o zaman bu dizin yapısını oluşturmak gerekebilir: Templates/Project Templates/iOS/Application/in~/Library/Developer/Xcode/
Bu basit yaklaşımı kullanarak bir Empty Applicationgiriş oluşturabiliyorum XCode 6. (Ekran görüntüsü aşağıdadır)
Bu yardımcı olur umarım!
Yapmanız gereken birkaç adım daha var:
İşte tam bir eğitim:
içeriği olan dosyaları desteklemek için "[uygulama adı] -Prefix.pch" dosyasını ekleyin:
#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
proje ayarlarına -> Yapı Ayarları -> Apple LLVM 6.0 - Dil -> "Önek Başlığı" na "$ SRCROOT / $ PROJECT_NAME / [pch dosya adı]" ekleyin
uygulama application:didFinishLaunchingWithOptions:yöntemi:
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'in cevabı tamamen doğrudur. Swift kullananlar için bu şöyle olurdu:
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 ve Swift 4
Bu adımlardan sonra şuraya gidin: AppDelegate.swift'eve didFinishLaunchingWithOptions işlevindesonrakini yazın:
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 ve Swift 5
Bu adımlardan sonra SceneDelegate'e gidin ve işlev sahnesinde sonrakini yazın:
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()
}
Yapmanız gereken bir adım daha var:
1) plist dosyasındaki Ana film şeridi dosya temel adını kaldırın
//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;
}
Güncelleme: Swift 5 ve iOS 13:

SceneDelegate.swiftve değiştirin 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 }
}
-e
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 dosyasını kaldırın
Bu basitçe silinebilir.
ProjectName-Info.plist dosyasını güncelleyin
Main storyboard base file nameAnahtarı çıkarın .
Bir uç dosyası oluşturun ve projenin görünüm denetleyicisine bağlantı oluşturun
1. Bir uç dosyası oluşturun (Dosya -> Yeni -> Dosya -> Görüntüle)
2. güncelleyin File's Owner's Sınıfı, projenin görünüm denetleyicisinin adı ne olursa olsun güncelleyin
3. Çıkışı uç dosyasındaki nesneye File's Owner's viewbağlayınview
Uygulama temsilcisini güncelleyin
1. Projenin görünüm denetleyicisinin başlık dosyasını içe aktarın
2. Uygulama :didFinishLaunchingWithOptions:yöntemini güncelleyin:
- (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;
}
İçin Xcode 8ve Swift 3.
Sadece silmek .storyboarddosyayı, bu otomatik olarak şunlara karşılık gelen referans silecektir .plistve içinde AppDelegate.swiftaşağıdaki kodu ekleyin.
let initialViewController = UIViewController()
initialViewController.view.backgroundColor = .white
window = UIWindow(frame: UIScreen.main.bounds)
window?.rootViewController = initialViewController
window?.makeKeyAndVisible()
Sen de ki kendi özel ViewCountroller ve kullanımını yazabilir AppDelegate.swiftsizin bizim gibi self.window?.rootViewControllersadece yukarıdaki kodda kendi ViewController ile UIViewController değiştirin.
XCode6 Beta kullanıyorum ve XCode5.xx'ten XCode6 Beta'ya Boş şablon ekleyerek bu sorunun başka bir çözümünü aradım.
Bunun için Uygulamalar'da XCode5.xx'e sağ tıklayın 'Paket İçeriğini Göster'e tıklayın ve verilen yoldan' Boş Application.xctemplate 'kopyalayın
İçindekiler / Geliştirici / Platformlar / iPhoneOS.platform / Geliştirici / Kitaplık / Xcode / Şablonlar / Proje Şablonları / Uygulama
Şimdi Pencereden çıkın ve XCode6 için verilen yolu açın
İçindekiler / Geliştirici / Platformlar / iPhoneOS.platform / Geliştirici / Kitaplık / Xcode / Şablonlar / Proje Şablonları / iOS / Uygulama /
Uygulama klasörünün içine 'Boş Application.xctemplate' yapıştırın. Şimdi çıkıp yeni proje oluşturarak XCode6'yı yeniden başlatın. 'Boş Uygulama' seçeneği alacaksınız.
Şimdi yeni Boş proje oluştururken, projeye otomatik olarak eklenen bir .pch dosyası (XCode6'da manuel olarak eklememiz gerekiyor)
Umarım işe yarar
Xcode için kendi proje şablonunuzu oluşturabilirsiniz. İsteğiniz için bu sitede şablon kullanabilirsiniz:
Diğerleri film şeridinden nasıl kurtulacağını zaten açıkladı, bu yüzden burada onu atlayacağım. Bunu kodumda daha az isteğe bağlı zincirleme ile yapmayı tercih ederim (Swift 3.1'de yazılmıştır):
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 ve ios üzerinde güncelleme 13. Her şeyi ayarladıktan sonra hala siyah bir ekran görüyorsanız, bunun nedeni yaşam döngüsünün UISceneDelegate tarafından yönetilmesidir ve yeni bir proje oluşturduğunuzda, UISceneDelegate.m ve UISceneDelegate.h'yi otomatik olarak oluşturacaktır. UISceneDelegate'e alışmadan önceki eski günlere dönmek için. aşağıdaki adımlar yardımcı olabilir:
plist'teki Uygulama Sahnesi Manifestini silin.
Application Scene Manifest.h ve Application Scene Manifest.m dosyasını sil
#pragma işareti altındaki kodu sil - APPdelegate.m'de UISceneSession yaşam döngüsü
@ özelliği (güçlü, atomik olmayan) UIWindow * pencere ekleyin; APPdelegate.h içinde