iPhone应用开发

新手遇到的第一个问题 2020-05-03

2020-05-03  本文已影响0人  chenhongqi

鉴于拖拖拽拽这种布局的方式一向是我厌恶的。所以一开始就决定用纯代码的方式写iPhone程序。

第一步:(按网上资料 OK)

1.创建一个工程;

2.删除 stroryboard 文件

3.删除SceneDelegate.swift文件

4.置空工程文件属性中 info属性里面的Main storyboard file base name

5.删除Info.plist文件中的 Main storyboard file base name 项,和 Application Scene Manifest项

6.修改AppDelegate文件,

    (6.1)删除后面的两个函数

 func application(_application:UIApplication, configurationForConnecting connectingSceneSession:UISceneSession, options:UIScene.ConnectionOptions) ->UISceneConfiguration{

}

 func application(_application:UIApplication, didDiscardSceneSessions sceneSessions:Set) {

}

    (6.2)在didFinishLaunchingWithOptions函数里面,给定rootViewController

        window = UIWindow(frame: UIScreen.main.bounds)

        window?.rootViewController = your_rootViewController  

        window?.makeKeyAndVisible()

        return true

7.运行OK,没问题

第二步:添加UITabBarController

1.自定义一个UITabBarController的子类HQTabBarViewController

2.自定义几个UIViewController的子类作为标签页

在viewDidLoad()方法里面设置tabBarItem.title, tabBarItem.image,设置其他UI

3.修改AppDelegate的didFinishLaunchingWithOptions方法

    let rootViewController =HQTabBarViewController()

    rootViewController.viewControllers = [viewController1 ,viewController2, viewController3]   

    window?.rootViewController= rootViewController

4.运行,tabBarItem不显示!!!!

--------------------------------------------------------------------

第一个遇到的问题是:给UITabBarController添加的TabBarItem首次启动时不显示文字和图片。点击后才会显示。

搜索某度,简直......,大家都知道。

找找stackoverflow吧,有人遇到了和我一样的问题。

------------------------------------------------------------------

原因:

ViewController里的View是个Lazy,不到必要的时候不会加载,

这个和android里的ViewPager预加载不同。因为Lazy,所以没有加载,就不会调用viewDidLoad方法,没有调用viewDidLoad方法,当然就不会显示设置的title和图片了。

解决方法:

知道了原因,解决办法也就有了:把设置图片和title的语句放到AppDelegate的didFinishLaunchingWithOptions方法里面。

运行,一切OK。

上一篇 下一篇

猜你喜欢

热点阅读