мое приложение имеет 2 страницы (VC), которые создаются и управляются в BossPageViewController, и я хочу дать пользователю возможность перейти непосредственно на вторую страницу с помощью действия «Ярлык». теперь я знаю, как создавать ярлыки и как их запускать, и я также знаю, как открыть эту страницу как root, но когда я открываю ее как root, я больше не могу пролистать до первой страницы, а также до страницы. Точек там нет поэтому я должен закрыть приложение и запустить его снова, чтобы иметь возможность пролистывать между страницами и видеть pageDots.
код ниже - это место, где срабатывает ярлык второй страницы, я скопировал и пропустил весь sceneDelegate здесь, возможно, кто-то захочет проверьте это:
import UIKit
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
var shortcutItemManager: UIApplicationShortcutItem?
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
if let shortcutItem = connectionOptions.shortcutItem {
shortcutItemManager = shortcutItem
}
guard let _ = (scene as? UIWindowScene) else { return }
}
func windowScene(_ windowScene: UIWindowScene, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void) {
shortcutItemManager = shortcutItem
}
//MARK:- Shortcuts are Triggered here.
func sceneDidBecomeActive(_ scene: UIScene) {
if let shortcutItem = shortcutItemManager {
if shortcutItem.type == "com.x.appname.openSecondPage" {
///- tag: code lines that run secondPage as root VC
if let windowScene = scene as? UIWindowScene {
let window = UIWindow(windowScene: windowScene)
let storyboard = UIStoryboard(name: "Main", bundle: nil)
window.rootViewController = storyboard.instantiateViewController(withIdentifier: "SecondPageVC")
self.window = window
window.makeKeyAndVisible()
}
shortcutItemManager = nil
}
}
}
}
Я также не хочу создавать экземпляр страницы как popover или модальный или что-то еще, я имею в виду просто хочу, чтобы эта страница была как есть, а не копия этой страницы. Пример кода того, что я имею в виду под копией:
let openSecondPage = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(identifier: "SecondPageVC") as! SecondPageViewController
window?.rootViewController?.present(openSecondPage, animated: false, completion: nil)
Я искал в течение месяца, но ничего подобного не было, они были похожи, но их кодовое решение не для меня, поэтому Я опубликовал это.