Xcode6Empty Applicationनया प्रोजेक्ट बनाते समय टेम्पलेट को हटा दिया गया है । हम Xcode6पूर्व संस्करणों की तरह कैसे और ऊपर (बिना स्टोरीबोर्ड के) एक खाली एप्लिकेशन बना सकते हैं ?
Xcode6Empty 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
}
उद्देश्य सी:
- (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प्रविष्टि को पसंद है। इसके बिना, ऐप पूरे स्क्रीन आकार को बड़े iPhones पर नहीं लेगा, जो कि बदसूरत है।
एक साधारण दृष्टिकोण कॉपी करने के लिए किया जाएगा XCode 5के Empty Applicationटेम्पलेट के लिए XCodeकी टेम्पलेट्स निर्देशिका।
आप डाउनलोड कर सकते हैं XCode 5's Empty Applicationसे टेम्पलेट यहां यह unzip, तो और पर प्रतिलिपि /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में 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;अखिल उत्तर पूरी तरह से सही है। स्विफ्ट का उपयोग करने वाले लोगों के लिए, यह इस तरह होगा:
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 और स्विफ्ट 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 और स्विफ्ट 5
इसके बाद स्टेप्स सीनडेलेगेट पर जाएं और फंक्शन सीन में अगला लिखें:
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) मुख्य स्टोरीबोर्ड फ़ाइल का आधार नाम प्लिस्ट फ़ाइल में निकालें
//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;
}
अपडेट: स्विफ्ट 5 और आईओएस 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()
}
}
मेरे पास मूल खाली एप्लिकेशन टेम्प्लेट है जो Xcode 6 से पहले Xcode संस्करणों में उपयोग किया गया था । मैंने इसे यहां अपलोड किया है ।
आप इसे डाउनलोड कर सकते हैं और इसे Xcode टेम्प्लेट डायरेक्टरी में मैन्युअल रूप से पेस्ट कर सकते हैं या Xcode, Alcatraz के लिए पैकेज मैनेजर का उपयोग करके इसे इंस्टॉल कर सकते हैं । बस Xcode खाली आवेदन के लिए खोज ।
Main.storyboard फ़ाइल निकालें
यह बस हटाया जा सकता है।
ProjectName-Info.plist फ़ाइल को अपडेट करें
हटाए Main storyboard base file nameकुंजी ।
एक नीब फ़ाइल बनाएँ और प्रोजेक्ट के दृश्य नियंत्रक से लिंक करें
1. एक निब फ़ाइल बनाएँ (फ़ाइल -> नया -> फ़ाइल -> देखें)
2.Update करें File's Owner's परियोजना के दृश्य नियंत्रक को जो भी कहा जाता है, उसे वर्ग में शामिल करें
3. करने के लिए File's Owner's viewआउटलेट पी लोview निब फ़ाइल में ऑब्जेक्ट
एप्लिकेशन प्रतिनिधि को अपडेट करें
1.Import है परियोजना नियंत्रक देखें हेडर फ़ाइल
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()
आप अपना स्वयं का कस्टम व्यूकंट्रोलर लिख सकते हैं और उसमें AppDelegate.swiftअपने रूप में उपयोग कर सकते हैं self.window?.rootViewController, बस ऊपर दिए गए कोड में अपने स्वयं के ViewController के साथ UIViewController बदलें।
मैं XCode6 बीटा का उपयोग कर रहा हूं और मैंने XCode5.xx से XCode6 बीटा में खाली टेम्पलेट जोड़कर इस समस्या का एक और समाधान खोजा।
इसके लिए XCode5.xx पर राइट क्लिक करें एप्लिकेशन में 'पैकेज सामग्री दिखाएं' पर क्लिक करें और दिए गए पथ पर 'खाली Application.xctemplate' कॉपी करें।
सामग्री / डेवलपर / प्लेटफार्म / iPhoneOS.platform / डेवलपर / पुस्तकालय / Xcode / टेम्पलेट्स / परियोजना टेम्पलेट्स / आवेदन
अब विंडो को छोड़ दें और XCode6 के लिए खुले दिए गए रास्ते को छोड़ दें
सामग्री / डेवलपर / प्लेटफार्म / iPhoneOS.platform / डेवलपर / पुस्तकालय / Xcode / टेम्पलेट्स / परियोजना टेम्पलेट / iOS / आवेदन /
एप्लिकेशन फ़ोल्डर के अंदर 'खाली Application.xctemplate' पेस्ट करें। अब XCode6 को फिर से शुरू करके और नई परियोजना बनाएं। आपको will खाली आवेदन ’का विकल्प मिलेगा।
अब जब मैं नया Empty Project बना रहा हूँ, तो एक .pch फ़ाइल अपने आप प्रोजेक्ट में जुड़ जाती है (जिसे हमें XCode6 में मैन्युअल रूप से जोड़ना होगा)
आशा है कि यह काम करेगा
आप Xcode के लिए अपना खुद का प्रोजेक्ट टेम्पलेट बना सकते हैं। आपके अनुरोध के लिए, आप इस साइट पर टेम्पलेट का उपयोग कर सकते हैं:
दूसरों ने पहले ही समझाया है कि स्टोरीबोर्ड से कैसे छुटकारा पाया जाए, इसलिए मैं उस एक को यहां छोड़ दूंगा। यह वह है जिसे मैं अपने कोड में कम वैकल्पिक चैनिंग के साथ करना पसंद करता हूं (स्विफ्ट 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 द्वारा नियंत्रित किया जाता है और जब आप एक नया प्रोजेक्ट बनाते हैं, तो यह UISceneDeleg.m और UISceneDelegate.h को ऑटो-जनरेट करेगा। पुराने दिनों में वापस जाने से पहले हमें UISceneDelegate की आदत डालें। निम्नलिखित कदम मदद कर सकते हैं:
प्लिस्ट में एप्लिकेशन सीन मेनिफेस्ट को हटाएं।
अनुप्रयोग दृश्य मैनिफेस्ट को हटा दें। और अनुप्रयोग दृश्य मेनिफेस्ट
#pragma मार्क के तहत कोड हटाएं - APPdelegate.m में UISceneSession lifecycle
@property (मजबूत, गैर-परमाणु) UIWindow * विंडो जोड़ें; APPdelegate.h में