首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在appdelegate - swift中设置初始视图控制器

在appdelegate - swift中设置初始视图控制器
EN

Stack Overflow用户
提问于 2014-11-05 17:46:19
回答 11查看 204.9K关注 0票数 163

我想要从应用程序委托中设置初始的视图控制器。我找到了一个非常好的答案,然而它是在目标C中,而我在swift中实现同样的事情时遇到了困难。

Programmatically set the initial view controller using Storyboards

代码语言:javascript
复制
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

    UIViewController *viewController = // determine the initial view controller here and instantiate   it with [storyboard instantiateViewControllerWithIdentifier:<storyboard id>];

    self.window.rootViewController = viewController;
    [self.window makeKeyAndVisible];

    return YES;
}

有人能帮上忙吗?

我希望初始的Viewcontroller依赖于使用条件语句满足的某些条件。

EN

回答 11

Stack Overflow用户

发布于 2014-11-05 18:07:13

尝尝这个。例如:您应该使用UINavigationController作为初始视图控制器。然后,您可以从故事板中将任何视图控制器设置为root。

代码语言:javascript
复制
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // Override point for customization after application launch.
    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let navigationController = storyboard.instantiateInitialViewController() as UINavigationController
    let rootViewController = storyboard.instantiateViewControllerWithIdentifier("VC") as UIViewController
    navigationController.viewControllers = [rootViewController]
    self.window?.rootViewController = navigationController
    return true
}

请参阅my storyboard screen.

票数 44
EN

Stack Overflow用户

发布于 2019-10-16 20:41:19

对于新的Xcode11.xxx和Swift 5.xx,其目标设置为iOS 13+。

对于新的项目结构,AppDelegate不需要对rootViewController做任何事情。

这里有一个新的类来处理窗口(UIWindowScene)类-> 'SceneDelegate‘文件。

代码语言:javascript
复制
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {

    if let windowScene = scene as? UIWindowScene {
        let window = UIWindow(windowScene: windowScene)
        window.rootViewController = // Your RootViewController in here
        self.window = window
        window.makeKeyAndVisible()
    }

}
票数 40
EN

Stack Overflow用户

发布于 2014-11-05 18:34:40

如果你没有使用故事板,你可以试试这个。

代码语言:javascript
复制
var window: UIWindow?
var initialViewController :UIViewController?

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    initialViewController  = MainViewController(nibName:"MainViewController",bundle:nil)

    let frame = UIScreen.mainScreen().bounds
    window = UIWindow(frame: frame)

    window!.rootViewController = initialViewController
    window!.makeKeyAndVisible()

    return true
}
票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26753925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档