相关疑难解决方法(0)

在appdelegate中设置初始viewcontroller - swift

我想从appdelegate设置初始viewcontroller.我找到了一个非常好的答案,但它是在Objective C中,我很难在swift中实现同样的功能.

使用Storyboard以编程方式设置初始视图控制器

- (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;
}
Run Code Online (Sandbox Code Playgroud)

有人能帮忙吗?

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

ios

133
推荐指数
13
解决办法
15万
查看次数

iOS - 设置'rootViewController'仅在设备上产生黑屏

使用非常基本的单一视图应用程序,我删除了主故事板文件并删除了对它的任何引用.因此我以编程方式设置窗口rootViewController.但是,虽然这会在模拟器中正确显示单个视图(包含标签),但在设备上运行时会显示黑屏.这是该应用程序的唯一代码.

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        window = UIWindow(frame: UIScreen.main.bounds)
        window?.rootViewController = DummyViewController()
        window?.makeKeyAndVisible()
        return true
    }
Run Code Online (Sandbox Code Playgroud)

我已从info.plist文件中删除了主故事板的条目,以及常规设置中的"主界面"条目.

我正在使用Swift 3并定位iOS 8设备.我正在使用XCode 8.3.1.

控制台中没有输出,也没有例外.viewDidLoad函数甚至在断点上触发,因此代码路径似乎正在正确运行.

有任何想法吗?

这是DummyViewController根据请求的简单代码.

class DummyViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
    }
}
Run Code Online (Sandbox Code Playgroud)

一般设置显示没有对主界面的引用 在此输入图像描述

这是链接到DummyViewController的.xib的图像 在此输入图像描述

**解决这种情况的解决方案是手动指定.xib加载DummyViewController**

ios swift

6
推荐指数
1
解决办法
3149
查看次数

标签 统计

ios ×2

swift ×1