如何在swift中的UIAlertView中添加UITableView

时间:2016-01-29 06:26:36

标签: ios swift uitableview uialertview

如何在UIAlertView中动态添加UITableView。将UIAlertView的子视图添加到UITableView后,它不会显示。

 override func viewDidLoad() {
    super.viewDidLoad()
    tableView.frame         =   CGRectMake(0, 50, 320, 200);
    tableView.delegate      =   self
    tableView.dataSource    =   self
    tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
}

@IBAction func textFieldCliked(sender: AnyObject) {
    alertView.message = "table view"
    alertView.addButtonWithTitle("Ok")
    alertView.addSubview(tableView)
    alertView.show()
}

3 个答案:

答案 0 :(得分:2)

在Swift中创建UITableView:

  1. 创建一个UITableViewController类。

  2. 使用必要的代码填充其代理(行数,didSelect,cellForRowAtIndexPath等)。

  3. 现在在AlertViewController

  4. 中调用它的实例
  5. 将所需数据传递给TableView(如行数和内容数组)。

  6. 将TableView实例添加到警报视图中。

  7. 我的代码段:

    let alertController : UIAlertController = UIAlertController(title: "Select email ID", message: nil, preferredStyle: .Alert)
    alertController.view.backgroundColor = UIColor.whiteColor()
    alertController.view.layer.cornerRadius = 8.0
    
    let contactNumVC = contactNumberTableViewController ()
    
    contactNumVC.count = emailIDs.count
    
    contactNumVC.numbersArray = emailIDs
    
    contactNumVC.preferredContentSize = CGSizeMake(alertController.view.frame.width, (44 * CGFloat(emailIDs.count)))
    
    alertController.setValue(contactNumVC, forKeyPath: "contentViewController")
    

答案 1 :(得分:0)

我不认为你可以用UIAlertView做到这一点,但你可以制作一个小视图并以模态或类似UIPopoverPresentationController

的方式呈现它

答案 2 :(得分:0)

要在多个应用程序中对表/图像或自定义按钮操作使用警报类型行为,我创建了带有所有这些示例的示例项目通用弹出框。这不使用过渡委托。 该项目还将演示自定义字体和颜色,以适应您的应用主题。

在情节提要中创建自定义tableview / imageview / button并按以下方式调用

if let vc = self.storyboard?.instantiateViewController(withIdentifier: "TableContentViewController") as? TableContentViewController{
            vc.modalPresentationStyle = .overCurrentContext
             vc.popOverDelegate = self
            self.present(vc, animated: false, completion: nil)
        }

链接中的更多信息 https://github.com/shruezee/GenericPopovers