Swift의 UI에 버튼 제목이 표시되지 않음

빈 판 탄

내가 이루고 싶은 것은 무엇입니까? 나는 2 UITableViewController : AddCardVCListDeckController. 선택한 덱 ListDeckControllerAddCardVC다음 updateUI으로 전달하고 싶습니다 .AddCardVC

내 코드 : ( Swift 5, iOS 13)

ListDeckController.swift :

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    let storyboard = UIStoryboard(name: "Main", bundle: nil)

    if let addCardVC = storyboard.instantiateViewController(withIdentifier: "AddCard") as? AddCardVC {
        if let deck = allDecks?[indexPath.row] {
            addCardVC.selectedDeck = deck
        }
    }
    self.navigationController?.popViewController(animated: true)
}

AddCardVC.swift :

var selectedDeck: Deck?
    {
        didSet {
            viewWillAppear(true)
        }
    }

override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        if let deck = selectedDeck {
            //Update UI
            self.chooseDeckButton.setTitle(deck.name, for: .normal)
            print(chooseDeckButton.titleLabel?.text ?? "")

            self.tableView.reloadData()
        }
    }

무슨 일이야?

에서 데크를 선택 AddCardVC하면 콘솔 chooseDeckButton.titleLabel?.text = "My Deck"이 내가 원하는 것을 인쇄합니다 . 하지만 UI의 버튼 제목은 "덱 선택"입니다. 콘솔 이미지 UI의 버튼

그렇다면 내 경우에는 setButtonTitle이 UI에 표시되지 않는 이유는 무엇입니까?

시간 내 주셔서 감사합니다

iOSArchitect.com

먼저 DeckDelegate 용 프로토콜을 생성합니다.

protocol SelectedDeckDelegate {
    func didSelectDeck(selectedDeck : Deck)
}

이제 ListDeckController.swift에서 대리자를 구현하십시오.

var deckDelegate : SelectedDeckDelegate?

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 
{ 
if let deck = allDecks?[indexPath.row] {
    deckDelegate?.didSelectDeck(selectedDeck: deck)
    self.navigationController?.popViewController(animated: true)
} else {
    print("deck is empty")
}  
}

그리고 AddCardVC에서 ListDeckController로 이동할 때 대리자를 self에 할당하십시오.

// Make AddCardVC conform to SelectedDeckDelegate

class AddCardVC : UIViewController, SelectedDeckDelegate {


   override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        if let deck = selectedDeck {
            //Update UI
            self.chooseDeckButton.setTitle(deck.name, for: .normal)
            print(chooseDeckButton.titleLabel?.text ?? "")

            self.tableView.reloadData()
        }
    }

    // assign the delegate to self here

    @IBAction func selectDeckBtnAction(_ sender : Any) {
        let vc = storyboard.instantiateViewController(withIdentifier: "ListDeckController") as? ListDeckController
        vc.deckDelegate = self
        self.navigationController?.pushViewController(vc, animated: true)
    }

    // this will get called whenever selectedDeck is updated from ListDeckController
    func didSelectDeck(selectedDeck: Deck) {
        self.selectedDeck = selectedDeck
        chooseDeckButton.setTitle(selectedDeck.name , for: .normal)
    }
 }

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

UITabBarController의 MoreNavigationController에 편집 버튼이 표시되지 않음

분류에서Dev

Android Studio의 RecycleView 아래에 버튼이 표시되지 않음

분류에서Dev

버튼의 Angular UI datepicker 팝업이 처음으로 표시되지 않음

분류에서Dev

제목 표시 줄의 Android Up 버튼 누름이 감지되지 않음

분류에서Dev

모든 버전의 IE에서 CSS 버튼이 표시되지 않음

분류에서Dev

UIA 확인에 버튼의 이름 속성이 표시되지 않음

분류에서Dev

탐색 표시 줄에 버튼이 표시되지 않음

분류에서Dev

iPad 용 모달의 UINavigationController에 취소 버튼이 표시되지 않음

분류에서Dev

jtable의 coloum 내부에 라디오 버튼 그룹이 표시되지 않음

분류에서Dev

토글 버튼의 wpf 이미지가 표시되지 않음

분류에서Dev

홈 페이지에 뒤로 버튼이 표시되지 않음

분류에서Dev

페이지에 링크 버튼이 표시되지 않음

분류에서Dev

할 일 목록의 일부 작업에 삭제 버튼이 표시되지 않습니다.

분류에서Dev

swiftUI의 버튼에 SF 기호가 표시되지 않음

분류에서Dev

런타임에 MapKitView에 버튼이 표시되지 않음

분류에서Dev

iTunesStore에 앱 업데이트 버튼이 표시되지 않음

분류에서Dev

Jquery UI 창에 "예"버튼이 표시되지 않습니다.

분류에서Dev

Flutter Scaffold Appbar에 뒤로 버튼이 표시되지 않음

분류에서Dev

Yii Captcha에 새로 고침 버튼이 표시되지 않음

분류에서Dev

버튼이 화면에 표시되지 않음

분류에서Dev

.nib 파일에 버튼이 표시되지 않음

분류에서Dev

Facebook 좋아요 버튼이 Firefox에 표시되지 않음

분류에서Dev

Ionic : 탭보기에 뒤로 버튼이 표시되지 않음

분류에서Dev

특정 버튼에 알림이 표시되지 않음

분류에서Dev

Shopify 구매 버튼이 모바일에 표시되지 않음

분류에서Dev

버튼이 표시되지 않음

분류에서Dev

Joomla 버튼이 표시되지 않음

분류에서Dev

버튼이 표시되지 않음

분류에서Dev

BorderLayout (); 버튼이 표시되지 않음

Related 관련 기사

  1. 1

    UITabBarController의 MoreNavigationController에 편집 버튼이 표시되지 않음

  2. 2

    Android Studio의 RecycleView 아래에 버튼이 표시되지 않음

  3. 3

    버튼의 Angular UI datepicker 팝업이 처음으로 표시되지 않음

  4. 4

    제목 표시 줄의 Android Up 버튼 누름이 감지되지 않음

  5. 5

    모든 버전의 IE에서 CSS 버튼이 표시되지 않음

  6. 6

    UIA 확인에 버튼의 이름 속성이 표시되지 않음

  7. 7

    탐색 표시 줄에 버튼이 표시되지 않음

  8. 8

    iPad 용 모달의 UINavigationController에 취소 버튼이 표시되지 않음

  9. 9

    jtable의 coloum 내부에 라디오 버튼 그룹이 표시되지 않음

  10. 10

    토글 버튼의 wpf 이미지가 표시되지 않음

  11. 11

    홈 페이지에 뒤로 버튼이 표시되지 않음

  12. 12

    페이지에 링크 버튼이 표시되지 않음

  13. 13

    할 일 목록의 일부 작업에 삭제 버튼이 표시되지 않습니다.

  14. 14

    swiftUI의 버튼에 SF 기호가 표시되지 않음

  15. 15

    런타임에 MapKitView에 버튼이 표시되지 않음

  16. 16

    iTunesStore에 앱 업데이트 버튼이 표시되지 않음

  17. 17

    Jquery UI 창에 "예"버튼이 표시되지 않습니다.

  18. 18

    Flutter Scaffold Appbar에 뒤로 버튼이 표시되지 않음

  19. 19

    Yii Captcha에 새로 고침 버튼이 표시되지 않음

  20. 20

    버튼이 화면에 표시되지 않음

  21. 21

    .nib 파일에 버튼이 표시되지 않음

  22. 22

    Facebook 좋아요 버튼이 Firefox에 표시되지 않음

  23. 23

    Ionic : 탭보기에 뒤로 버튼이 표시되지 않음

  24. 24

    특정 버튼에 알림이 표시되지 않음

  25. 25

    Shopify 구매 버튼이 모바일에 표시되지 않음

  26. 26

    버튼이 표시되지 않음

  27. 27

    Joomla 버튼이 표시되지 않음

  28. 28

    버튼이 표시되지 않음

  29. 29

    BorderLayout (); 버튼이 표시되지 않음

뜨겁다태그

보관