#ios #swift
#iOS #swift
Вопрос:
Я использую следующий код для загрузки моей таблицы с помощью collection.
self.window = UIWindow(frame: CGRect(x:40, y:120, width:self.view.bounds.width-100, height:self.view.bounds.height-200))
self.window!.backgroundColor = UIColor.whiteColor()
let mainController : CollectionViewController = CollectionViewController(nibName: "CollectionViewController", bundle: nil)
myController.TableHeaderArray = TableHeaders
let ApiResponse = self.dataTableViewdictParams(apiUrl)
myController.UMIDDataArray = ApiResponse[0] as! NSMutableArray
myController.TableDataArray = ApiResponse[1] as! NSMutableArray
self.window!.rootViewController = myController
self.window!.makeKeyAndVisible()
Я хочу удалить эту таблицу при нажатии кнопки и загрузить другое представление. При нажатии кнопки загружается другое представление, но я не могу удалить эту таблицу UIWindowView. Как я могу это удалить?
Редактировать:
Добавлен код, который я пробовал:
function loadanotherView()
{
/// I tried these three codes but none worked for me
self.window?.removeFromSuperview() // code 1
self.window?.rootViewController?.removeFromParentViewController() // code 1
self.window?.hidden = true // code 2
let frame = CGRect(x:0, y:-20, width:self.view.bounds.width, height:self.view.bounds.width)
WView.frame=frame
let url = NSURL(string:"urlForTheWebView")
let req = NSURLRequest(URL:url!)
self.webView!.loadRequest(req)
self.view.addSubview(WView)
}
Комментарии:
1. обновите свой вопрос с помощью вашего метода удаления кнопки click
2. добавлен метод нажатия кнопки
3.
tableView.dismissViewController()
4. где находится код, с помощью которого вы удаляете tableview или скрываете tableview?
5. Почему вы возитесь с окном? Рассмотрите возможность использования навигационного контроллера или чего-то подобного.
Ответ №1:
Не использовать
self.window!.rootViewController = myController
Используйте это
self.window?.addSubview(myController.view)
И вместо того, чтобы использовать
self.window?.removeFromSuperview() // code 1
self.window?.rootViewController?.removeFromParentViewController() // code 1
self.window?.hidden = true // code 2
Используйте это,
myController.view.removeFromSuperview() // If Button on the another viewcontroller
или
self.view.removeFromSuperview() // If Button on the myController
Потому что, если вы создадите MyController как root, он не может быть удален из SuperView. Итак, добавьте это в качестве подвида.
Комментарии:
1. Когда я использую — self.window? .addSubview (MyController.view), это выдает ошибку.
2. В нем говорится — UICollectionView получил атрибуты макета для ячейки с несуществующим путем к индексу: <NSIndexPath: 0xc000000000000016>
3. 1-й скажите мне, что такое MyController и MainViewController?