与 viewcontroller 一起使用时的 swiftUI 导航栏标题设置

swiftUI navigation bar title setting when using with viewcontroller

cells page

ChatView

这是我的单元格页面代码

    var body : some View{
        NavigationView {
            List(getPairsUser()){i in

                NavigationLink(destination: ChatView(friend:i)){
                    cellView(user : i)
                }
                .navigationBarTitle(Text("Friends List"),displayMode: .inline)
            }
                .navigationBarHidden(true)


        }.frame(minWidth: UIScreen.main.bounds.width, idealWidth: UIScreen.main.bounds.width, maxWidth: UIScreen.main.bounds.width,  maxHeight: .infinity)
            .clipShape(Rounded())

    }

在导航链接目标中是 ChatView()

ChatView 的代码在这里

struct ChatView: UIViewControllerRepresentable {

    @EnvironmentObject var obser:Observer


    var db = Firestore.firestore()
    var friend:User!
    var messageRef:CollectionReference!
    var pairRef:CollectionReference!

    init(friend:User){
        self.friend = friend

    }

    func updateUIViewController(_ uiViewController: ChatViewController, context: Context) {
        if(uiViewController.left){
            if(!self.obser.messageListenerFlag[friend.pairUid]!){
                self.obser.messageListenerFlag[friend.pairUid] = true
                if( uiViewController.lastMessageDate != nil){
                    self.obser.pairLastMessages[friend.pairUid] = uiViewController.lastMessage
                    self.obser.pairLastMessagesDate[friend.pairUid] = uiViewController.lastMessageDate
                }
            }

        }

    }
    func makeUIViewController(context: Context) -> ChatViewController {
        let chatViewController = ChatViewController()
        chatViewController.navigationItem.title = self.friend.name

        self.navigationBarTitle(Text(self.friend.name))


        chatViewController.title = self.friend.name
        chatViewController.senderId = self.obser.__THIS__.Uid
        chatViewController.senderDisplayName = self.obser.__THIS__.Name
        chatViewController.friend = self.friend
        chatViewController.messageRef = self.db.collection("pairs").document(self.friend.pairUid).collection("messages")
        chatViewController.pairRef = self.db.collection("pairs").document(self.friend.pairUid).collection("typingIndicator")
        chatViewController.__THIS__ = self.obser.__THIS__

        let _url = URL(string: self.friend.image)!
        if let data = try? Data(contentsOf: _url) {
            chatViewController.friendImage = UIImage(data: data)
        }

        self.obser.messageListenerFlag[friend.pairUid] = false




        self.obser.unreadMessageCount[friend.pairUid]? = 0


        return chatViewController
    }

    typealias UIViewControllerType = ChatViewController

}

我想做的是进入 ChatView

我想在橙色块(图中)中添加一些文字(朋友的名字)

我已经尝试在单元格页面上添加 .navigationTitle,但它不起作用

我也试着修改了viewcontroller的标题,但是还是不行

我该怎么办?

在我回答你的问题之前,很抱歉没有进行任何测试。这只是基于我的假设。

设置 chatViewController.navigationItem.title = self.friend.name 而不是调用 SwiftUI 视图的 navigationBarTitle

我认为推送的视图不是普通的 SwiftUI 而是 UIKit 视图视图,因此您应该以 UIKit 方式处理它。