使用委托打开另一个视图控制器?

时间:2017-12-26 18:31:06

标签: ios swift

我是IOS新手,创建自定义日历,如果用户选择任何日期,应用程序将重定向到另一个viewController。

我使用此链接创建日历: https://github.com/Akhilendra/calenderAppiOS

我已经与代表一起完成了,但我无法弄清楚我做错了什么。

我的代码:

uri

现在问题是,当我点击日期时,什么都不会发生。

3 个答案:

答案 0 :(得分:0)

在这种情况下,最好使用故事板,然后控制 - 将集合视图拖到第二个视图控制器。由于除了呈现视图控制器之外,您不会将代理用于其他任何事情,因此您可以将其除掉。

答案 1 :(得分:0)

代表用于其他情况。在这种情况下,没有必要。此外,您不需要将UIView符合Delegates和DataSource,因为它与MVC相矛盾。相反,将日历视图(集合视图)放在UIViewController中并使该控制器符合实现方法。

你应该这样做:

class CalenderViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {

var calenderView: UICollectionView!

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    let cell = collectionView.cellForItem(at: indexPath)!
    cell.backgroundColor = Colors.darkRed
    let lbl = cell.subviews[1] as! UILabel
    lbl.textColor = UIColor.yellow

    let calcDate = indexPath.row - firstWeekDayOfMonth + 2

    openAppointmentDetails()
}

func openAppointmentDetails() {
    let appointmentVC = storyboard?.instantiateViewController(withIdentifier: "appointmentDetailsVC") as! AppointmentDetailsViewController
    navigationController?.pushViewController(appointmentVC, animated: true)
}
}

答案 2 :(得分:0)

我解决了这个问题。我忘了添加calenderView.delegate = self         在ViewController的viewDidLoad()方法

以及openAppointmentDetails()

中的更改

这是变化。

select * from number where Column_X <> 6 

}