开发者

How to press "Back" button in UINavigationController programmatically

开发者 https://www.devze.com 2023-04-11 03:06 出处:网络
I have a UIViewController called FriendsViewController inside a 开发者_高级运维UINavigationController. And a second UIViewController called FriendsDetailedViewController. When navigating from the firs

I have a UIViewController called FriendsViewController inside a 开发者_高级运维UINavigationController. And a second UIViewController called FriendsDetailedViewController. When navigating from the first view controller to the second, I want to programmatically press the Back button when needed. How to do this?


Simply use

[self.navigationController popViewControllerAnimated:YES]

from FriendsDetailedViewController. Your view will be popped out i.e. the behavior of back button.

Note that it returns UIViewController on normally, and returns nil if there is nothing to pop.


If by pressing "Back" button you mean just to go to the previous view controller, you can just call:

[self.navigationController popViewControllerAnimated:YES];


Here is the swift method

if let navController = self.navigationController {
    navController.popViewControllerAnimated(true)
}


Swift 5

 self.navigationController?.popViewController(animated: true)

Usage in a code snippet:

func unwindViewController() {
    self.navigationController?.popViewController(animated: true)
}


1) When you pop in current NavigationController Then

In Swift

self.navigationController?.popViewControllerAnimated(true)

Objective C

[self.navigationController popViewControllerAnimated:YES];

2) When you back another Navigation controller Then

In Swift

let story = UIStoryboard(name: "Main", bundle: nil)
let pushVC = story.instantiateViewControllerWithIdentifier("PushVC")
let navigation = story.instantiateViewControllerWithIdentifier("homeNavigation") as! UINavigationController
navigation.pushViewController(pushVC!, animated: true)

In Objective C

UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"storyBoardName" bundle:nil];
pushVC* ObjectOfPushVC = [storyboard instantiateViewControllerWithIdentifier:@"pushVC"];

[self.navigationController pushViewController:ObjectOfPushVC animated:YES];


Here is how I did it in Swift 3

_ = self.navigationController?.popViewController(animated: true)

_ is used to suppress the ugly warning generated by XCode.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号