Pay attention to judging the condition,
Override Func Prepare (for Segue: Uistoryboardsegue, sender: any ?) {
if let cell = sender as ? Uicollectionviewcell,
Let Indexpath = CollectionView?. Indexpath (For:cell),
Let Managepageviewcontroller = Segue. destination as ? Managepageviewcontroller {
Managepageviewcontroller. photos = photos
Managepageviewcontroller. currentindex = Indexpath. Row
}
}
}
Uipageviewcontroller usage
If let viewcontroller = Viewphotocommentcontroller (index: currentindex?? 0) {
Let viewcontrollers = [Viewcontroller]
Setviewcontrollers (
Viewcontrollers,
Direction:. forward,
Animated: false,
Completion: Nil
)
}
VC from Storyboard, initialization method
fileprivate func viewphotocommentcontroller (index: Int), Photocommentviewcontroller? {
if let storyboard = Storyboard,
Let page = Storyboard. Instantiateviewcontroller (withidentifier: "Photocommentviewcontroller")
as? Photocommentviewcontroller {
Page. photoname = Photos[index]
Page. Photoindex = Index
return page
}
return Nil
}
// Uipageviewcontrollerdatasource
Extension managepageviewcontroller: Uipageviewcontrollerdatasource {
Func Pageviewcontroller (_ Pageviewcontroller: Uipageviewcontroller, Viewcontrollerbefore ViewController : uiviewcontroller), Uiviewcontroller? {
if let viewcontroller = Viewcontroller as ? Photocommentviewcontroller {
Guard Let index = Viewcontroller. Photoindex, Index! = 0 else {
return Nil
}
return Viewphotocommentcontroller(Index:index- 1)
}
return Nil
}
Func Pageviewcontroller (_ Pageviewcontroller: uipageviewcontroller, Viewcontrollerafter ViewController: Uiviewcontroller, Uiviewcontroller? {
if let viewcontroller = Viewcontroller as ? Photocommentviewcontroller {
Guard Let index = Viewcontroller. Photoindex, index ! = photos. Count- 1 else {
return Nil
}
return Viewphotocommentcontroller(index:index + 1)
}
return Nil
}
Mark:uipagecontrol
func Presentationcount (for Pageviewcontroller: uipageviewcontroller), Int {
return photos. Count
}
func Presentationindex (for Pageviewcontroller: uipageviewcontroller), Int {
return currentindex ?? 0
}
}
Initialize Selector
Fileprivate extension Selector {
static let Keyboardwillshowhandler = #selector (photocommentviewcontroller.keyboardwillshow ( Notification:))
static let Keyboardwillhidehandler = #selector (photocommentviewcontroller.keyboardwillhide ( Notification:))
static let generaltap = #selector(Photocommentviewcontroller. Dismisskeyboard)
static let Zoomtap = #selector (photocommentviewcontroller.openzoomingcontroller (sender:))
}
Uiscrollviewdelegate
func viewforzooming (in ScrollView: uiscrollview), UIView? {
return Myimageview
}
Func Scrollviewdidzoom (_ ScrollView: uiscrollview) {
updateconstraints (forsize: view. Bounds. size)
}
Swift Development Note 11