swift存在控制器,后退按钮返回上一屏

时间:2018-04-02 11:10:21

标签: swift xcode

我正在呈现一个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)
}
}

2 个答案:

答案 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)

您有两种选择:

  1. 将您的视图控制器嵌入UINavigationController并使用UINavigationBar和segues进行导航。构建这样一个系统的最简单方法是通过故事板。但是你也可以通过编程方式做到这一点,但这将会有更多的工作。
  2. @ZahurafzalMirza 向您展示的方式以编程方式添加您自己的后退按钮。由于您未使用UINavigationController,因此navigationController将为nil。所以行动看起来应该是这样的

    func backAction() -> Void {        
        self.dismiss(animated: true)
    }