Hello, is it possible to reference a photo from the photo picker (either UIKit or SwiftUI), such that I do not need to copy it somewhere else? Currently, I am storing the copy in CoreData in a field with external storage, but it did cross my mind that I don't actually need a copy in my own storage if I could point back to the photo library. If the user deleted the photo from the library that would be fine.
Post
Replies
Boosts
Views
Activity
Hello! I've noticed that when I am using NavigationSplitView and I minimize the app on iPadOS and then resume, if I am using a 2 column setup it loses state upon resume. This does not appear to happen on with a 3 column setup though. I'm wondering if others have run into this and if anyone has figured out a way around it. It seems like it's a bug and I should file a bug for it, but wanted to check with more people first.
Here's some example code, run it, select your number of columns, then minimize the app, count to 3 (because why not!) and open the app and you'll notice that $selection is now nil.
import SwiftUI
struct Item: Identifiable, Hashable {
var id: Int
var name: String
var description: String
}
struct ContentView: View {
@State var selection: Item?
var items: [Item] = [
.init(id: 1, name: "One", description: "Is the loneliest number"),
.init(id: 2, name: "Two", description: "Two can be as bad as one"),
.init(id: 3, name: "Three", description: "Three Dog Night")
]
var body: some View {
TabView {
NavigationSplitView {
List(items, selection: $selection) { item in
NavigationLink(value: item) {
Text(item.name)
}
}
} content: {
if let selection {
Text(selection.name).font(.title)
Text(selection.description)
} else {
EmptyView()
}
} detail: {
VStack {
Text("Detail here")
}
}
.tabItem {
Label("3 Columns", systemImage: "rectangle.split.3x1")
}
NavigationSplitView {
List(items, selection: $selection) { item in
NavigationLink(value: item) {
Text(item.name)
}
}
} detail: {
if let selection {
Text(selection.name).font(.title)
Text(selection.description)
} else {
EmptyView()
}
}
.tabItem {
Label("2 Columns", systemImage: "rectangle.split.2x1")
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}