Это приложение Objective-C, и я работаю с Xcode 14. Я пытаюсь перенести устаревший UIWebView на WKWebView, и я уже заменил все ссылки UIWebView в коде на WKWebView, но я застрял в части раскадровки ( имейте в виду, что я новичок в разработке iOS).
Я пытаюсь добавить WKWebView в SB, затем реплицировать все свойства текущего UIWebView и, наконец, удалить UIWebView.
На следующем снимке экрана вы увидите в правой панели раскадровки, что текущий UIWebView имеет выход делегата:
Но я не знаю, как воспроизвести этот выход делегата в WKWebView, который ниже. Я должен сказать, что не знаю точно, что такое делегат в этом контексте, но я просто пытаюсь воспроизвести свойства текущего WebView.
Как создать точку делегирования для WKWebView?





Вы можете дать вашему WKWebView выходное соединение для розетки, которая у него есть на самом деле. WKWebView не имеет свойства делегата. Поэтому у него нет делегатского выхода.
Я пытаюсь добавить WKWebView в SB, затем реплицировать все свойства текущего UIWebView и, наконец, удалить UIWebView.
Ну, перестань пытаться это сделать. WKWebView сильно отличается от UIWebView. Вы не должны пытаться «реплицировать» что-либо в UIWebView с помощью WKWebView. Используйте WKWebView как WKWebView.
Во-первых, все ваши взаимодействия кода с этим представлением должны быть полностью переписаны. Вы не можете просто вставить WKWebView вместо UIWebView, как если бы это были просто два имени для одного и того же.
Я снял пометку с вопроса как правильный @matt, потому что он частично правильный. Я продолжал исследовать, и у WKWebView DO есть делегаты. Наиболее распространенным является WKNavigationDelegate (developer.apple.com/documentation/webkit/… ). Но я не знаю, как связать его с WKWebView в раскадровке, и я не могу запустить didFinishNavigation. Может быть, вы можете помочь мне в моем другом вопросе: stackoverflow.com/questions/74586720/…
Я не говорил, что у него нет делегатов. У него два делегата. Но ни один из них не называется delegate. Это то, что вы спросили, и то, что я ответил. Более того, я сказал вам рассматривать WKWebView как WKWebView, а не как замену UIWebView. Что было правильно, и на самом деле это то, что вы сделали. "Может быть, вы можете помочь мне в моем другом вопросе" Не после того, как вы лишили меня мотивации сделать это, нет.
Хорошо, извини @matt, я изменил правильный ответ, может быть, слишком быстро, но ожидал дополнительной помощи. Я думал, что если новые читатели увидят, что вопрос помечен как правильный, они не смогут ничего опубликовать. Учитывая ваши объяснения, и даже если вы продолжаете мне помогать или нет, я верну это снова. Извините, может быть, это была ошибка, но мое единственное намерение состояло в том, чтобы получить дополнительную помощь.
Просто посмотрите на вопрос, который вы задали. Вы хотели «реплицировать все свойства текущего UIWebView». Я говорил тебе, что ты не можешь этого сделать и не должен пытаться. И я был прав, и вы последовали моему совету и извлекли из него пользу, таким образом достигнув следующей стадии, на которой вы сейчас находитесь. "но мое единственное намерение состояло в том, чтобы получить больше помощи" Действительно. Вот что делает задавание другого вопроса. Тот факт, что теперь у вас есть еще один вопрос, не делает мой ответ на ваш первый вопрос неверным.
Вы совершенно правы, @matt, вот почему я извинился, потому что я думаю, что это было поспешное решение, и снова отменил его. Я не только согласен с вами, но и ценю вашу помощь. Сказав это, я думаю, что то, что я сделал, не должно считаться таким важным, чтобы помешать тебе продолжать мне помогать.
Это становится очень личным и, как мне кажется, основано на непонимании того, что такое переполнение стека.
Отличное объяснение @matt. Я последую вашему предложению и проверю UIWebView с помощью UIWebView.