UIBarButton не показывает перед разделом кода, но показывает после - PullRequest
0 голосов
/ 13 марта 2020
super.viewDidLoad()

let urlString: String
if navigationController?.tabBarItem.tag == 0 {
    urlString = "https://api.whitehouse.gov/v1/petitions.json?limit=100"
} else {
    urlString = "https://api.whitehouse.gov/v1/petitions.json?signatureCountFloor=10000&limit=100"
}

if let url = URL(string: urlString) {
    if let data = try? Data(contentsOf: url) {
        parse(json: data)
        return
    }
}

navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .action, target: self, action: #selector(actionButton))

Если я создаю rightBarButton после секции кода (как выше), кнопка панели не появляется. Однако, если я создаю rightBarButton перед кодом, появляется rightBarButton. У меня есть tableViewController, встроенный в контроллер навигации и контроллер панели вкладок. Почему при нажатии кнопки после кода кнопка не отображается?

1 Ответ

1 голос
/ 13 марта 2020

Удалите ключевое слово return, return не выполнит дальнейшие строки кода. пожалуйста, ответьте , перепутанный с функциональностью return в swift .

Ваш код должен быть

super.viewDidLoad()
let urlString: String = (navigationController?.tabBarItem.tag == 0) ? "https://api.whitehouse.gov/v1/petitions.json?limit=100" : "https://api.whitehouse.gov/v1/petitions.json?signatureCountFloor=10000&limit=100"


if let url = URL(string: urlString) {
    if let data = try? Data(contentsOf: url) {
        parse(json: data)
    }
}
navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .action, target: self, action: #selector(actionButton)
...