使用目标 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?
当我在 viewcontroller 上使用 3 视图时,目标 c 会变慢