使用目标 c 后,UiViewController 不会从标签栏项目中快速加载

Posted

技术标签:

【中文标题】使用目标 c 后,UiViewController 不会从标签栏项目中快速加载【英文标题】:UiViewControllers are not loaded from tab bar item in swift after using objective c 【发布时间】:2016-09-29 16:21:21 【问题描述】:

我正在 swift 3 中编写一个应用程序,其中我有几个视图通过 segues 连接不同的选项卡栏项目。我使用桥接头从 Github 导入了一个旋转轮项目,并在我的项目中删除了所有目标 c 文件。在 Appdelegate.swift 文件中,我转换了 Appdelegate.m 文件中的代码并将其粘贴到那里

var window: UIWindow?
    var viewController: SMViewController!



    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool 
        // Override point for customization after application launch.


        self.window! = UIWindow(frame: UIScreen.main.bounds)
        self.viewController = SMViewController(nibName: "SMViewController", bundle: nil)
        self.window!.rootViewController = self.viewController

        self.window!.makeKeyAndVisible()

        return true


    

车轮图像加载在 SMViewController.m 文件中

- (void)viewDidLoad

    [super viewDidLoad];



    SMWheelControl *wheel = [[SMWheelControl alloc] initWithFrame:self.wheelContainer.bounds];

    [wheel addTarget:self action:@selector(wheelDidChangeValue:) forControlEvents:UIControlEventValueChanged];
    [wheel insertSubview:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"WheelBackground"]] atIndex:0];
    wheel.delegate = self;
    wheel.dataSource = self;
    [wheel reloadData];

    [self.wheelContainer addSubview:wheel];

    self.wheel = wheel;


我在项目中导入了 SMViewController.xib 文件。而且在 Main.Storyboard 文件中,我将视图控制器设置为身份检查器中的 SMViewController。当我的应用程序启动时,来自 git 项目的***在启动屏幕后显示正常,但我的所有其他视图都没有显示。我不知道为什么会这样。非常感谢任何帮助。

【问题讨论】:

我看到您将SMViewController 设置为应用程序的根控制器,但标签栏在哪里发挥作用? 我使用 storyboard 和 segues 将标签栏项目与视图控制器连接起来,您可以从我编辑的答案中的屏幕截图中看到。我应该在哪里进行更改才能完成这项工作? 我认为您希望将根视图控制器作为故事板中的初始控制器加载,而不是在应用程序委托代码中将其设置为 SMViewController 这个代码是什么? 在情节提要中设置正确的初始视图控制器(如果尚未设置)并删除您在应用程序委托中添加的代码以使***根。将SMViewController 加载到您希望它出现的选项卡中。 【参考方案1】:

我跑对了。我不知道“其他视图”的确切含义,它写在你的 SMViewController 中吗?你能把你的代码上传到 GitHub 上吗,我可以帮你更多。


    将 ViewController 的 Nav 设置为“初始视图控制器” 设置 ViewController 的类 删除您在“AppDelegate.swift”中添加的代码

然后你会看到你想要的VC,我猜。

【讨论】:

请查看我编辑的问题。我添加了我的项目的两个屏幕截图。

以上是关于使用目标 c 后,UiViewController 不会从标签栏项目中快速加载的主要内容,如果未能解决你的问题,请参考以下文章

长按时,如何从目标 c 函数而不是 contextMenuInteraction 函数调用 ImagePreviewController: UIViewController?

推送 UIViewController 崩溃

当我在 viewcontroller 上使用 3 视图时,目标 c 会变慢

如何使用通知将字符串数据从 swift 传递到目标 c 类

如何以编程方式使用另一个视图中的按钮从情节提要中打开 UIViewController?

无法加载 UIViewController