我正在呈现一个UICollectionViewController,但它最终只是作为一个控制器,没有后退按钮回到最后一个控制器或家庭控制器,我将如何添加一个后退按钮?或者我有什么其他选择?
class UserProfileController: UICollectionViewController, UICollectionViewDelegateFlowLayout, UserProfileHeaderDelegate, ProfileHeaderClosedDelegate {
func presentFRC() {
let PE = FriendsRequestsController(collectionViewLayout:
UICollectionViewFlowLayout())
let NPE = UINavigationController(rootViewController: PE)
self.present(NPE, animated: true, completion: nil)
}
}
答案 0 :(得分:1)
在您正在呈现的视图控制器的视图中添加以下代码。
override func viewDidLoad() {
super.viewDidLoad()
var backbutton = UIButton(type: .Custom)
backbutton.setImage(UIImage(named: "BackButton.png"), forState: .Normal)
backbutton.setTitle("Back", forState: .Normal)
backbutton.setTitleColor(backbutton.tintColor, forState: .Normal) // You can change the TitleColor
backbutton.addTarget(self, action: "backAction", forControlEvents: .TouchUpInside)
self.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: backbutton)
}
func backAction() -> Void {
self.navigationController?.popViewControllerAnimated(true)
}
答案 1 :(得分:1)
您有两种选择:
UINavigationController
并使用UINavigationBar
和segues进行导航。构建这样一个系统的最简单方法是通过故事板。但是你也可以通过编程方式做到这一点,但这将会有更多的工作。以 @ZahurafzalMirza 向您展示的方式以编程方式添加您自己的后退按钮。由于您未使用UINavigationController
,因此navigationController
将为nil
。所以行动看起来应该是这样的
func backAction() -> Void {
self.dismiss(animated: true)
}