iOS26适配指南之UIViewController

介绍

WWDC24 中 UIViewController 增加了 5 种特殊的转场效果zoomcoverVerticalflipHorizontalcrossDissolvepartialCurl。但是触发条件仅限于 UIView,WWDC25 将zoom的触发条件扩展至 UIBarButtonItem。

使用

  • 代码。
swift 复制代码
import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        let barButtonItem = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(barButtonItemClicked))
        navigationItem.rightBarButtonItem = barButtonItem
    }

    @objc func barButtonItemClicked(_ sender: Any) {
        let nextViewController = NextViewController()
        nextViewController.view.backgroundColor = .systemRed
        nextViewController.preferredTransition = .zoom { context in
            guard context.zoomedViewController is NextViewController else {
                fatalError("Unable to access the current UIViewController.")
            }
            // iOS26新增,返回触发的UIBarButtonItem
            return self.navigationItem.rightBarButtonItem
        }
        present(nextViewController, animated: true)
    }
}

class NextViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        view.backgroundColor = .systemGreen
    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        dismiss(animated: true)
    }
}
  • 效果。
相关推荐
_瑞5 小时前
读懂 iOS 的线程调用栈
ios·编译原理·汇编语言
末代iOS程序员华仔8 小时前
iOS 语聊直播/聊天APP4.3条例被拒解决
flutter·ios·swift
denggun123459 小时前
Python两套原生信号量与swift对比
开发语言·python·swift
2601_965798471 天前
Build a Fast, High-Ranking Restaurant Website with Rolanda Theme
开发语言·ios·swift
极客互动API1 天前
企业微信 iPad 协议消息接口开发:文本 / 图片 / 群发消息的统一封装
人工智能·ios·微信·机器人·企业微信·ipad
我血条子呢1 天前
iOS 软键盘遮挡底部输入框解决报告
ios
思盛iOS签名上架1 天前
为什么 iOS 需要签名?未签名 App 无法安装的底层逻辑
ios
Data_Journal2 天前
Golang 中解析 HTML 的指南
ios·iphone
jike_20262 天前
销售拜访记录APP推荐:客户沟通内容怎么快速整理?
ios·语音识别·iphone