这是我的单元格页面代码
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())
}
NavigationLink目标中的是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的标题,但是它也不起作用
我该怎么办?
答案 0 :(得分:0)
在回答您的问题之前,很抱歉没有做任何测试。这只是基于我的假设。
设置chatViewController.navigationItem.title = self.friend.name
而不是SwiftUI视图的调用navigationBarTitle
。
我认为推送视图不是普通的SwiftUI,而是UIKit视图,因此您应该以UIKit方式处理它。