Explore the art and science of app design. Discuss user interface (UI) design principles, user experience (UX) best practices, and share design resources and inspiration.

Learn about designing great app and game experiences

Posts under General subtopic

Post

Replies

Boosts

Views

Activity

First attempt at a PKPass
This is my first attempt at creating a Wallet pass, actually a generic store card. When I see it with Pass Viewer on macOS, I get 1 look, when I see it with the iPhone simulator or iPhone proper, I get a different view. Neither is what I was hoping for, a simple vertical layout of an address. Could someone steer me in the correct direction? My json: "formatVersion": 1, "passTypeIdentifier": "pass.org.danleys.4KSBarcode", "serialNumber": "__SERIAL__", "teamIdentifier": "----", "organizationName": "4 K.I.D.S. Sake", "description": "4KSBarcode", "logoText": "4 K.I.D.S. Sake", "foregroundColor": "rgb(255, 255, 255)", "backgroundColor": "rgb(255,0,0)", "storeCard" : { "primaryFields" : [ { "key" : "ClientID", "label" : "", "value" : "" } ], "auxiliaryFields": [ { "key": "street", "label": "Address", "value": "339 Remington Blvd" }, { "key": "city", "label": "", "value": "Bolingbrook, IL 60440" } ] }, "barcode": { "format": "PKBarcodeFormatCode128", "message": "__SERIAL__", "altText": "__SERIAL__", "messageEncoding": "iso-8859-1" } } On macOS: On iOS: Thank you. Ed
Topic: Design SubTopic: General Tags:
2
0
1.4k
Mar ’26
Images added in Reality Composer look darker in AR
I’m working with Reality Composer and noticed that images added directly to a scene appear significantly darker when viewed in AR. This seems different from how other objects in the scene respond to lighting, especially under varying real-world light conditions. Is this expected behavior? Are images treated with a different lighting model in Reality Composer? Is there any recommended way to get more consistent light response for image-based artworks?
Topic: Design SubTopic: General Tags:
1
0
554
Mar ’26
NavigationTitle in LiquidGlass style
Hello everyone. I want to do navigationTitle (located on the top side on MacOS system) in LiquidGlass style. now my solution look like: just black rectangle. But i want like this: opacity and LiquidGlass. Like in Photo app in MacOS. Please help me, thank you in advance. My code: struct RootView: View { @Environment(\.horizontalSizeClass) var hSize var body: some View { if hSize == .regular { DesktopLayout() .navigationTitle("title") .toolbarBackground(.ultraThinMaterial, for: .automatic) } else { MobileLayout() } } }
1
0
731
Mar ’26
tvOS alternative app icons
Does anyone know if alternate app icons are actually supposed to work for Apple TV projects? We tried to set this up, and while it works in Debug, we run into validation errors when uploading the app to App Store Connect. Is this feature officially supported on tvOS, or is it iOS-only?
Topic: Design SubTopic: General
1
0
263
Mar ’26
Nearby Accessory
Can the vehicle‑side UWB module, acting as a Nearby Accessory, perform ranging with multiple iOS phones simultaneously while iOS cell uses background ranging with the vehicle‑side UWB (which involves BLE GATT services)? I mean, when the IOS cell works in the background, it will read the nearby gatt characteristic automatically. If there were multiple phones perform ranging with the accessory, the read characteristic from the accessory side, what shall its content be? Or does the accessory only perform ranging with one phone at a time?
Topic: Design SubTopic: General
0
0
545
Feb ’26
Rendering Multi-Page PDF with SwiftUI View
I have the following code that renders a one-page PDF: func render() -> URL { let renderer = ImageRenderer(content: pdfView()) let url = URL.documentsDirectory.appending(path: "filename.pdf") renderer.render { size, context in var document = CGRect(x: 0, y: 0, width: 2550, height: 3300) guard let pdf = CGContext(url as CFURL, mediaBox: &document, nil) else { return } pdf.beginPDFPage(nil) context(pdf) pdf.endPDFPage() pdf.closePDF() } return url } func pdfView() -> some View { Text("View") } How can this be modified so that it renders a PDF with more than one page?
2
0
745
Feb ’26
Swift Playground with C language.
I want to know if the program written in C language can be implemented through the software package, write a software package containing C language on Xcode, and then apply it in Swift Playground.
Topic: Design SubTopic: General
0
0
129
Feb ’26
How can I set up a B2B subscription with ABM + MDM + Paywall
I am looking for guidance on how people have solved this problem/use case. What is the best way to structure a seat based subscription app that an organization can pay for seats for all their users, can be distributed via mdm or via app store and is easy (low friction) to get paid for and started for small companies? I market to a business to buy my app, they want it installed on all 25 devices they have. They use ABM to acquire 25 licenses with and MDM to distribute. The app is currently free to download so ABM charges $0 but has a paywall to use. The paywall is a RevenueCat one and no user account is needed. All entitlements and free trial work great. When it is deployed to the 25 devices, they can either sign up with their own AppleId and own/company credit card, or use a company appleid and company card for all 25 devices to solve the issue but neither are great. Doubtful they would want to pay their money for a company required app on a company phone (don’t blame them). If they share an appleid, my MRR drops to 1/25th since they will just share the purchase. Any suggestions would be greatly appreciated.
0
0
202
Feb ’26
Questions about the Swift Student Challenge
Hello! I've been wondering about how strict the rules are for multilingual content in submissions, and also what I can use as screenshots. There are screens in my app, explained and accompanied by English, that have Chinese text/audio on them. Is this appropriate? Reading the Terms & Conditions says that "All content must be in English", but because multicultural themes are a main point of my app, it seems unavoidable to use other languages. I've attached images that show what I'm talking about: About the screenshots in my submission, am I allowed to show two screenshots side-by-side of a before & after of what an interaction does in one image? It'd look like two phone screenshots right next to each other.
2
0
315
Feb ’26
How to do settings icon for menu in SwiftUI?
Hi everyone. Can you help me with my settings icon design. I`m trying to create circular setting button using Menu. My code here: struct MenuView: View { var body: some View { Menu { Text("Hello") Text("How are you") } label: { Image(systemName: "gearshape.fill") .clipShape(Circle()) } .clipShape(Circle()) .padding(.top, 10) .padding(.leading, 20) } } You can see my try, this one looks wrong. It should be like this: Just Circle with setting image inside. Thank you an advance 😭🙏🛐
1
0
598
Feb ’26
SwiftUI Menu label: How to center an icon inside a circle?
Hi Everyone. Can you help me with my settings icon design. I'm trying to create a circular settings button using Menu. My code here: struct MenuView: View { var body: some View { Menu { Text("Hello") Text("How are you") } label: { Image(systemName: "gearshape.fill") .clipShape(Circle()) } .clipShape(Circle()) .padding(.top, 10) .padding(.leading, 20) } } You can see my try, this one looks wrong. It should be like this: Just Circle with setting image inside. Thank you an advance 😭🙏🛐
1
0
675
Feb ’26
Liquid Glass support : Best practices for navigation button styles in iOS 26 and later
Hello! I'm currently working on Liquid Glass support for my app. I understand that starting with iOS 26, standard buttons like "Close" or "Done" have shifted from text buttons to using SF Symbols, as mentioned in the Human Interface Guidelines under "Icons". However, on iOS 18 and earlier, the flat text button style remains the standard. I am unsure about the best approach for backward compatibility: Branch by OS version: Keep text buttons for older OS versions and use SF Symbols for iOS 26+. Concern: This increases the number of conditional branches, potentially reducing code readability and maintainability. Adopt SF Symbols universally: Use SF Symbols for all versions. Concern: I feel that SF Symbols do not fit well (look inconsistent or out of place) with the flat design language of iOS 18 and earlier. What would be the recommended approach in this situation?
Topic: Design SubTopic: General Tags:
5
0
1.6k
Feb ’26
CPContactTemplate does not display buttons iOS26
I'm trying to display CPButtons (CPContactCallButton, CPContactMessageButton) in CPContactTemplate. They are displayed using device with iOS16, but with iOS26 device CPContactTemplate only displays contact image and contact name. No buttons. Is it a bug? I don't have iOS17/18 devices to try.
Topic: Design SubTopic: General Tags:
3
0
393
Feb ’26
Titles and Header Auto Changing Color?
I have some questions about Liquid Glass and iOS 26 on the iPhone. Routine scrolling transactions in any view are causing the title to change from Light Mode colors to Dark Mode colors. Is this now standard operation? The column headers are also displaying a black stripe across the top of the screen when scrolling. So why doesn't the display shift when in Dark Mode to Light mode? Scrolling is causing everything in the header (navigation title, time, battery status, and wi-fi status) to change from black to white. Is this an accessibility action that I may have turned on by accident? I'm not very thrilled by this behavior!
Topic: Design SubTopic: General Tags:
7
0
1.2k
Feb ’26
Adobe XD throws error when loading UIKit resources Sketch file
Hi there. I want to use Adobe XD for designing and prototyping apps, and I would like to get the UIKit design resources working. I downloaded it and tried to open it with Adobe XD, but it threw this error: There was an error opening the file Apple iOS 26 UI Kit.sketch (Error code: 115) I really prefer to use the UIKit in Adobe XD rather than paying for Figma or Sketch. Thanks. Apple Design Resources
Topic: Design SubTopic: General Tags:
1
0
891
Jan ’26
Sell UI patent to Apple
I've designed a new UI for phones.. I'd like Apple to look at it and see what they think https://docs.google.com/presentation/d/10QSQvAdRRkL-eA9WRsSEbsL62XIayJ75Mbi93tx92DI/edit?usp=drive_link
Topic: Design SubTopic: General
3
0
823
Jan ’26
CarPlay navigation issue, maximum depth
Hi everyone, I am working on a CarPlay integration, and need open a two level list opened from a root template. However, I am always receiving an error message when opening the 2nd pushed template. To narrow it down not to have an issue with some app specific code I created the CarPlay scene below. I am aware that there is a limit, but two levels I understand are supported on all CarPlay integrations, the maximum seems to be 5. The app is just crashing right after showing the 2nd template. Any ideas? Any hints are much appreciated. Thanks a lot! Regards, Michael class CarPlaySceneDelegate2: UIResponder, CPTemplateApplicationSceneDelegate { // [...] private func createRootTemplate() -> CPListTemplate { let pushToAItem = CPListItem(text: "Push to Template A", detailText: "Level 1 → Level 2") pushToAItem.handler = {[weak self] (pushToAItem, completion) in guard let self = self else { completion() return } self.interfaceController?.pushTemplate( self.pushTemplateA(), animated: true, completion: { (didPresent, error) in completion() } ) } let section = CPListSection(items: [pushToAItem]) let template = CPListTemplate(title: "Root Template", sections: [section]) return template } private func pushTemplateA() -> CPListTemplate { let pushToBItem = CPListItem(text: "Push to Template B", detailText: "Level 2 → Level 3") pushToBItem.handler = {[weak self] (pushToBItem, completion) in guard let self = self else { completion() return } self.interfaceController?.pushTemplate( self.pushTemplateB(), animated: true, completion: { (didPresent, error) in completion() } ) } let backToRootItem = CPListItem(text: "Pop to Root", detailText: "Go back to root") backToRootItem.handler = { [weak self] _, completion in self?.interfaceController?.popToRootTemplate(animated: true, completion: nil) completion(); } let infoItem = CPListItem(text: "Current Depth", detailText: "2 (Template A)") let stackCountItem = CPListItem( text: "Stack Count", detailText: "\((interfaceController?.templates.count ?? 0) + 1)" ) let section = CPListSection(items: [pushToBItem, backToRootItem, infoItem, stackCountItem]) let template = CPListTemplate(title: "Template A", sections: [section]) return template } private func pushTemplateB() -> CPListTemplate { let pushToCItem = CPListItem(text: "Push to Template C", detailText: "Level 3 → Level 4") pushToCItem.handler = {[weak self] (pushToCItem, completion) in guard let self = self else { completion() return } self.interfaceController?.pushTemplate( self.pushTemplateC(), animated: true, completion: { (didPresent, error) in completion() } ) } let backToRootItem = CPListItem(text: "Pop to Root", detailText: "Go back to root") backToRootItem.handler = { [weak self] _, completion in self?.interfaceController?.popToRootTemplate(animated: true, completion: nil) completion() } let popOneItem = CPListItem(text: "Pop One", detailText: "Go back to Template A") popOneItem.handler = { [weak self] _, completion in self?.interfaceController?.popTemplate(animated: true, completion: nil) completion() } let infoItem = CPListItem(text: "Current Depth", detailText: "3 (Template B)") let stackCountItem = CPListItem( text: "Stack Count", detailText: "\((interfaceController?.templates.count ?? 0) + 1)" ) let section = CPListSection(items: [pushToCItem, popOneItem, backToRootItem, infoItem, stackCountItem]) let template = CPListTemplate(title: "Template B", sections: [section]) return template } private func pushTemplateC() -> CPListTemplate { let backToRootItem = CPListItem(text: "Pop to Root", detailText: "Go back to root") backToRootItem.handler = { [weak self] _, completion in self?.interfaceController?.popToRootTemplate(animated: true, completion: nil) completion() } let popOneItem = CPListItem(text: "Pop One", detailText: "Go back to Template B") popOneItem.handler = { [weak self] _, completion in self?.interfaceController?.popTemplate(animated: true, completion: nil) completion() } let infoItem = CPListItem(text: "Current Depth", detailText: "4 (Template C)") let stackCountItem = CPListItem( text: "Stack Count", detailText: "\((interfaceController?.templates.count ?? 0) + 1)" ) let section = CPListSection(items: [popOneItem, backToRootItem, infoItem, stackCountItem]) let template = CPListTemplate(title: "Template C", sections: [section]) return template } }
2
0
1.9k
Jan ’26
I need a coding design team.
Hi friends, I need a design and coding team to publish a fintech app. Can anyone help me with this?
Topic: Design SubTopic: General
Replies
1
Boosts
0
Views
1.1k
Activity
Mar ’26
First attempt at a PKPass
This is my first attempt at creating a Wallet pass, actually a generic store card. When I see it with Pass Viewer on macOS, I get 1 look, when I see it with the iPhone simulator or iPhone proper, I get a different view. Neither is what I was hoping for, a simple vertical layout of an address. Could someone steer me in the correct direction? My json: "formatVersion": 1, "passTypeIdentifier": "pass.org.danleys.4KSBarcode", "serialNumber": "__SERIAL__", "teamIdentifier": "----", "organizationName": "4 K.I.D.S. Sake", "description": "4KSBarcode", "logoText": "4 K.I.D.S. Sake", "foregroundColor": "rgb(255, 255, 255)", "backgroundColor": "rgb(255,0,0)", "storeCard" : { "primaryFields" : [ { "key" : "ClientID", "label" : "", "value" : "" } ], "auxiliaryFields": [ { "key": "street", "label": "Address", "value": "339 Remington Blvd" }, { "key": "city", "label": "", "value": "Bolingbrook, IL 60440" } ] }, "barcode": { "format": "PKBarcodeFormatCode128", "message": "__SERIAL__", "altText": "__SERIAL__", "messageEncoding": "iso-8859-1" } } On macOS: On iOS: Thank you. Ed
Topic: Design SubTopic: General Tags:
Replies
2
Boosts
0
Views
1.4k
Activity
Mar ’26
Images added in Reality Composer look darker in AR
I’m working with Reality Composer and noticed that images added directly to a scene appear significantly darker when viewed in AR. This seems different from how other objects in the scene respond to lighting, especially under varying real-world light conditions. Is this expected behavior? Are images treated with a different lighting model in Reality Composer? Is there any recommended way to get more consistent light response for image-based artworks?
Topic: Design SubTopic: General Tags:
Replies
1
Boosts
0
Views
554
Activity
Mar ’26
NavigationTitle in LiquidGlass style
Hello everyone. I want to do navigationTitle (located on the top side on MacOS system) in LiquidGlass style. now my solution look like: just black rectangle. But i want like this: opacity and LiquidGlass. Like in Photo app in MacOS. Please help me, thank you in advance. My code: struct RootView: View { @Environment(\.horizontalSizeClass) var hSize var body: some View { if hSize == .regular { DesktopLayout() .navigationTitle("title") .toolbarBackground(.ultraThinMaterial, for: .automatic) } else { MobileLayout() } } }
Replies
1
Boosts
0
Views
731
Activity
Mar ’26
tvOS alternative app icons
Does anyone know if alternate app icons are actually supposed to work for Apple TV projects? We tried to set this up, and while it works in Debug, we run into validation errors when uploading the app to App Store Connect. Is this feature officially supported on tvOS, or is it iOS-only?
Topic: Design SubTopic: General
Replies
1
Boosts
0
Views
263
Activity
Mar ’26
Nearby Accessory
Can the vehicle‑side UWB module, acting as a Nearby Accessory, perform ranging with multiple iOS phones simultaneously while iOS cell uses background ranging with the vehicle‑side UWB (which involves BLE GATT services)? I mean, when the IOS cell works in the background, it will read the nearby gatt characteristic automatically. If there were multiple phones perform ranging with the accessory, the read characteristic from the accessory side, what shall its content be? Or does the accessory only perform ranging with one phone at a time?
Topic: Design SubTopic: General
Replies
0
Boosts
0
Views
545
Activity
Feb ’26
iOS 26.4 missing smart display zoom from settings
Running iOS 26.4 and now the smart display zoom feature is no longer showing on my 2024 RAM Uconnect 5 12” radio. Is there anyway to fix this issue?
Topic: Design SubTopic: General Tags:
Replies
8
Boosts
1
Views
373
Activity
Feb ’26
Rendering Multi-Page PDF with SwiftUI View
I have the following code that renders a one-page PDF: func render() -> URL { let renderer = ImageRenderer(content: pdfView()) let url = URL.documentsDirectory.appending(path: "filename.pdf") renderer.render { size, context in var document = CGRect(x: 0, y: 0, width: 2550, height: 3300) guard let pdf = CGContext(url as CFURL, mediaBox: &document, nil) else { return } pdf.beginPDFPage(nil) context(pdf) pdf.endPDFPage() pdf.closePDF() } return url } func pdfView() -> some View { Text("View") } How can this be modified so that it renders a PDF with more than one page?
Replies
2
Boosts
0
Views
745
Activity
Feb ’26
Swift Playground with C language.
I want to know if the program written in C language can be implemented through the software package, write a software package containing C language on Xcode, and then apply it in Swift Playground.
Topic: Design SubTopic: General
Replies
0
Boosts
0
Views
129
Activity
Feb ’26
How can I set up a B2B subscription with ABM + MDM + Paywall
I am looking for guidance on how people have solved this problem/use case. What is the best way to structure a seat based subscription app that an organization can pay for seats for all their users, can be distributed via mdm or via app store and is easy (low friction) to get paid for and started for small companies? I market to a business to buy my app, they want it installed on all 25 devices they have. They use ABM to acquire 25 licenses with and MDM to distribute. The app is currently free to download so ABM charges $0 but has a paywall to use. The paywall is a RevenueCat one and no user account is needed. All entitlements and free trial work great. When it is deployed to the 25 devices, they can either sign up with their own AppleId and own/company credit card, or use a company appleid and company card for all 25 devices to solve the issue but neither are great. Doubtful they would want to pay their money for a company required app on a company phone (don’t blame them). If they share an appleid, my MRR drops to 1/25th since they will just share the purchase. Any suggestions would be greatly appreciated.
Replies
0
Boosts
0
Views
202
Activity
Feb ’26
Questions about the Swift Student Challenge
Hello! I've been wondering about how strict the rules are for multilingual content in submissions, and also what I can use as screenshots. There are screens in my app, explained and accompanied by English, that have Chinese text/audio on them. Is this appropriate? Reading the Terms & Conditions says that "All content must be in English", but because multicultural themes are a main point of my app, it seems unavoidable to use other languages. I've attached images that show what I'm talking about: About the screenshots in my submission, am I allowed to show two screenshots side-by-side of a before & after of what an interaction does in one image? It'd look like two phone screenshots right next to each other.
Replies
2
Boosts
0
Views
315
Activity
Feb ’26
How to do settings icon for menu in SwiftUI?
Hi everyone. Can you help me with my settings icon design. I`m trying to create circular setting button using Menu. My code here: struct MenuView: View { var body: some View { Menu { Text("Hello") Text("How are you") } label: { Image(systemName: "gearshape.fill") .clipShape(Circle()) } .clipShape(Circle()) .padding(.top, 10) .padding(.leading, 20) } } You can see my try, this one looks wrong. It should be like this: Just Circle with setting image inside. Thank you an advance 😭🙏🛐
Replies
1
Boosts
0
Views
598
Activity
Feb ’26
SwiftUI Menu label: How to center an icon inside a circle?
Hi Everyone. Can you help me with my settings icon design. I'm trying to create a circular settings button using Menu. My code here: struct MenuView: View { var body: some View { Menu { Text("Hello") Text("How are you") } label: { Image(systemName: "gearshape.fill") .clipShape(Circle()) } .clipShape(Circle()) .padding(.top, 10) .padding(.leading, 20) } } You can see my try, this one looks wrong. It should be like this: Just Circle with setting image inside. Thank you an advance 😭🙏🛐
Replies
1
Boosts
0
Views
675
Activity
Feb ’26
Liquid Glass support : Best practices for navigation button styles in iOS 26 and later
Hello! I'm currently working on Liquid Glass support for my app. I understand that starting with iOS 26, standard buttons like "Close" or "Done" have shifted from text buttons to using SF Symbols, as mentioned in the Human Interface Guidelines under "Icons". However, on iOS 18 and earlier, the flat text button style remains the standard. I am unsure about the best approach for backward compatibility: Branch by OS version: Keep text buttons for older OS versions and use SF Symbols for iOS 26+. Concern: This increases the number of conditional branches, potentially reducing code readability and maintainability. Adopt SF Symbols universally: Use SF Symbols for all versions. Concern: I feel that SF Symbols do not fit well (look inconsistent or out of place) with the flat design language of iOS 18 and earlier. What would be the recommended approach in this situation?
Topic: Design SubTopic: General Tags:
Replies
5
Boosts
0
Views
1.6k
Activity
Feb ’26
CPContactTemplate does not display buttons iOS26
I'm trying to display CPButtons (CPContactCallButton, CPContactMessageButton) in CPContactTemplate. They are displayed using device with iOS16, but with iOS26 device CPContactTemplate only displays contact image and contact name. No buttons. Is it a bug? I don't have iOS17/18 devices to try.
Topic: Design SubTopic: General Tags:
Replies
3
Boosts
0
Views
393
Activity
Feb ’26
Titles and Header Auto Changing Color?
I have some questions about Liquid Glass and iOS 26 on the iPhone. Routine scrolling transactions in any view are causing the title to change from Light Mode colors to Dark Mode colors. Is this now standard operation? The column headers are also displaying a black stripe across the top of the screen when scrolling. So why doesn't the display shift when in Dark Mode to Light mode? Scrolling is causing everything in the header (navigation title, time, battery status, and wi-fi status) to change from black to white. Is this an accessibility action that I may have turned on by accident? I'm not very thrilled by this behavior!
Topic: Design SubTopic: General Tags:
Replies
7
Boosts
0
Views
1.2k
Activity
Feb ’26
Adobe XD throws error when loading UIKit resources Sketch file
Hi there. I want to use Adobe XD for designing and prototyping apps, and I would like to get the UIKit design resources working. I downloaded it and tried to open it with Adobe XD, but it threw this error: There was an error opening the file Apple iOS 26 UI Kit.sketch (Error code: 115) I really prefer to use the UIKit in Adobe XD rather than paying for Figma or Sketch. Thanks. Apple Design Resources
Topic: Design SubTopic: General Tags:
Replies
1
Boosts
0
Views
891
Activity
Jan ’26
Sell UI patent to Apple
I've designed a new UI for phones.. I'd like Apple to look at it and see what they think https://docs.google.com/presentation/d/10QSQvAdRRkL-eA9WRsSEbsL62XIayJ75Mbi93tx92DI/edit?usp=drive_link
Topic: Design SubTopic: General
Replies
3
Boosts
0
Views
823
Activity
Jan ’26
CarPlay navigation issue, maximum depth
Hi everyone, I am working on a CarPlay integration, and need open a two level list opened from a root template. However, I am always receiving an error message when opening the 2nd pushed template. To narrow it down not to have an issue with some app specific code I created the CarPlay scene below. I am aware that there is a limit, but two levels I understand are supported on all CarPlay integrations, the maximum seems to be 5. The app is just crashing right after showing the 2nd template. Any ideas? Any hints are much appreciated. Thanks a lot! Regards, Michael class CarPlaySceneDelegate2: UIResponder, CPTemplateApplicationSceneDelegate { // [...] private func createRootTemplate() -> CPListTemplate { let pushToAItem = CPListItem(text: "Push to Template A", detailText: "Level 1 → Level 2") pushToAItem.handler = {[weak self] (pushToAItem, completion) in guard let self = self else { completion() return } self.interfaceController?.pushTemplate( self.pushTemplateA(), animated: true, completion: { (didPresent, error) in completion() } ) } let section = CPListSection(items: [pushToAItem]) let template = CPListTemplate(title: "Root Template", sections: [section]) return template } private func pushTemplateA() -> CPListTemplate { let pushToBItem = CPListItem(text: "Push to Template B", detailText: "Level 2 → Level 3") pushToBItem.handler = {[weak self] (pushToBItem, completion) in guard let self = self else { completion() return } self.interfaceController?.pushTemplate( self.pushTemplateB(), animated: true, completion: { (didPresent, error) in completion() } ) } let backToRootItem = CPListItem(text: "Pop to Root", detailText: "Go back to root") backToRootItem.handler = { [weak self] _, completion in self?.interfaceController?.popToRootTemplate(animated: true, completion: nil) completion(); } let infoItem = CPListItem(text: "Current Depth", detailText: "2 (Template A)") let stackCountItem = CPListItem( text: "Stack Count", detailText: "\((interfaceController?.templates.count ?? 0) + 1)" ) let section = CPListSection(items: [pushToBItem, backToRootItem, infoItem, stackCountItem]) let template = CPListTemplate(title: "Template A", sections: [section]) return template } private func pushTemplateB() -> CPListTemplate { let pushToCItem = CPListItem(text: "Push to Template C", detailText: "Level 3 → Level 4") pushToCItem.handler = {[weak self] (pushToCItem, completion) in guard let self = self else { completion() return } self.interfaceController?.pushTemplate( self.pushTemplateC(), animated: true, completion: { (didPresent, error) in completion() } ) } let backToRootItem = CPListItem(text: "Pop to Root", detailText: "Go back to root") backToRootItem.handler = { [weak self] _, completion in self?.interfaceController?.popToRootTemplate(animated: true, completion: nil) completion() } let popOneItem = CPListItem(text: "Pop One", detailText: "Go back to Template A") popOneItem.handler = { [weak self] _, completion in self?.interfaceController?.popTemplate(animated: true, completion: nil) completion() } let infoItem = CPListItem(text: "Current Depth", detailText: "3 (Template B)") let stackCountItem = CPListItem( text: "Stack Count", detailText: "\((interfaceController?.templates.count ?? 0) + 1)" ) let section = CPListSection(items: [pushToCItem, popOneItem, backToRootItem, infoItem, stackCountItem]) let template = CPListTemplate(title: "Template B", sections: [section]) return template } private func pushTemplateC() -> CPListTemplate { let backToRootItem = CPListItem(text: "Pop to Root", detailText: "Go back to root") backToRootItem.handler = { [weak self] _, completion in self?.interfaceController?.popToRootTemplate(animated: true, completion: nil) completion() } let popOneItem = CPListItem(text: "Pop One", detailText: "Go back to Template B") popOneItem.handler = { [weak self] _, completion in self?.interfaceController?.popTemplate(animated: true, completion: nil) completion() } let infoItem = CPListItem(text: "Current Depth", detailText: "4 (Template C)") let stackCountItem = CPListItem( text: "Stack Count", detailText: "\((interfaceController?.templates.count ?? 0) + 1)" ) let section = CPListSection(items: [popOneItem, backToRootItem, infoItem, stackCountItem]) let template = CPListTemplate(title: "Template C", sections: [section]) return template } }
Replies
2
Boosts
0
Views
1.9k
Activity
Jan ’26
How do I set my .icon file as an app icon?
I have a project, and I prepared an app icon. But I don't know where to drag the .icon, please help me out!
Replies
3
Boosts
1
Views
1.9k
Activity
Jan ’26