初始化代码:
MatchViewControllerPhone(nibName:"MatchViewControllerPhone", bundle: nil)
MatchViewControllerPhone类部分代码:
class MatchViewControllerPhone: UIViewController
@IBOutlet weak var container: UIScrollView!
// MARK: - Life cycle
override func viewDidLoad() {
super.viewDidLoad()
self.container.delegate = self //在iOS8设备上报错:fatal error: unexpectedly found nil while unwrapping an Optional value
}
}
查看发现xib里的子控件都为nil导致的。
后来发现init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?)中nibNameOrNil参数在iOS8中为空,所有有以下解决方案:
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
let classString = String(describing: type(of: self))
super.init(nibName: nibNameOrNil ?? classString, bundle: nibBundleOrNil)
}
ps:
1、在iOS9iOS10设备上是好的,估计被苹果修复了
2、在storyboard中也是好的,所以xib换成storyboard也是可以解决的。
相关推荐
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) setupBubbleTransition() } required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) setupBubbleTransition() } private func ...
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) delegate = self } required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) delegate = self } func ...
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) // 设置导航栏背景颜色 self.navigationBar.backgroundColor = UIColor(red: 0.1, green: 0.6, blue: 0.9, alpha: 1.0) } required init?...
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) let tabBar = CustomTabBar() self.tabBar = tabBar } ``` 3. **自定义TabBarItem**:如果需要,你可以创建一个自定义的`UITabBarItem`子类,用来...
super.init(nibName: nil, bundle: nil) } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } } // 在prepare(for:sender:)方法中使用自定义初始化 ...
本示例“ios自定义table例子”旨在教你如何通过自定义UITableViewCell来实现个性化展示,让你能够在表格中自由地绘制内容。 首先,自定义一个UITableViewCell类。在Swift中,你可以创建一个新的Swift文件,例如`...
本篇文章将深入探讨如何在iOS项目中使用UITableView,结合“IOS tableView(一张图片标题详细说明)”这个标题,我们将重点讲解如何创建并定制一个带有图片和标题的tableView。 首先,我们需要创建一个UITableView,...
在iOS开发中,自定义UITableViewCell是一项常见的任务,它允许开发者根据需求创建独特的界面展示效果,提升用户体验。"xib和手写代码自定义UITableViewCell"这个主题涵盖了两种主要的自定义方式:通过故事板(XIB)...
guard let nibName = String(describing: type), let nib = UINib(nibName: nibName, bundle: nil) else { return nil } return nib.instantiate(withOwner: self, options: nil).first as? T } let strategyView...
在这个类中,我们可以根据需求添加UI元素,比如UILabel、UIButton等,并在`awakeFromNib`或Swift中的`init(style:reuseIdentifier:)`方法中进行初始化布局。 接着,我们需要为这个自定义cell创建一个对应的 nib ...
在iOS项目中,通过组件化集成Flutter,可以方便地在现有项目中引入Flutter模块,而无需大幅度改动原项目结构。本篇文章将深入探讨如何使用“三行代码”实现Flutter在已有iOS项目中的无侵入集成。 首先,我们需要...
super.init(nibName: nil, bundle: nil) webView = UIWebView(frame: view.bounds) view.addSubview(webView) let url = URL(string: urlString)! webView.loadRequest(URLRequest(url: url)) } // 添加...
在iOS开发中,`UITableView` 是一种常用的组件,用于展示列表数据。`TouchCells` 这个主题,尤其是“touchcell的示例代码”,显然关注的是如何在`UITableViewCell` 内部添加交互元素,比如`UIButton`,并处理用户的...
在Swift编程语言中,"CustomGenericViewFromXib"是一个常见的主题,特别是在iOS应用开发中。这个主题涉及到如何创建自定义的泛型视图,并且这些视图是从Xib(接口构建器)文件中加载的。Xib文件是Apple的Interface ...
在 iOS 应用开发中,我们通常使用 Interface Builder(.xib 或 .storyboard 文件)来设计用户界面,然后通过代码将这些界面与程序逻辑关联起来。LoadedNibView 提供了一种更高效、更简洁的方式来加载和使用 nib 文件...