Skip to content

Commit b8b0c27

Browse files
committed
feat: if vc has set left item, then disable interactive pop by default;
1 parent 386d911 commit b8b0c27

File tree

5 files changed

+84
-11
lines changed

5 files changed

+84
-11
lines changed

Example/CHANGELOG.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
0.6.0
2+
3+
- *Notice*: default behavior change. If **VC** has set left item in `-viewDidLoad`, then interactive pop will be disabled by default, you can still set `rt_disableInteractivePop` to **NO** if you really want it.
4+
5+
0.5.26
6+
7+
- interactive push support
8+
```ruby
9+
pod 'RTRootNavigationController', :subspec = ['push']
10+
```
11+
12+
0.5.25
13+
14+
- deprecate `customBackItemWithTarget:action:`, use `rt_customBackItemWithTarget:action:` instead
15+
16+
0.5.24
17+
18+
- add `popViewControllerAnimated:complete:` method
19+
20+
0.5.23
21+
22+
- add a **NOTICE** for the view controller hierarchy change
23+
- fix #39
24+
25+
0.5.22
26+
27+
- fix delegate method calling
28+
29+
0.5.21
30+
31+
- fix #27
32+
33+
0.5.20
34+
35+
- fix #16
36+
37+
0.5.19
38+
39+
- fix #14
40+
41+
0.5.18
42+
43+
- fix #12
44+
45+
0.5.17
46+
47+
- fix #11
48+
49+
0.5.16
50+
51+
- potential bug
52+
53+
0.5.15
54+
55+
- fix #7
56+
57+
0.5.14
58+
59+
- fix #4
60+
61+
0.5.13
62+
63+
- add `removeViewController:animated:` method
64+
- fix pop to root completion block calling

Example/RTRootNavigationController.xcodeproj/project.pbxproj

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
9C2994E91D09B83C007722C1 /* RTItemListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C2994E81D09B83C007722C1 /* RTItemListViewController.m */; };
3131
9C2994EC1D09B84B007722C1 /* RTItemDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C2994EB1D09B84B007722C1 /* RTItemDetailViewController.m */; };
3232
9C2994EF1D0A4D6F007722C1 /* RTWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C2994EE1D0A4D6F007722C1 /* RTWebViewController.m */; };
33+
9C323D241F0BA45C00A18836 /* CHANGELOG.md in Sources */ = {isa = PBXBuildFile; fileRef = 9C323D231F0BA45C00A18836 /* CHANGELOG.md */; };
3334
9C7832C11D09111F00693F14 /* RTHideNavigationBarViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C7832C01D09111F00693F14 /* RTHideNavigationBarViewController.m */; };
3435
9C7832C41D09152900693F14 /* RTCollectionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C7832C31D09152900693F14 /* RTCollectionViewController.m */; };
3536
F97BFC33007327C1DBBBB743 /* Pods_RTRootNavigationController_Example_RTRootNavigationController_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1328FAB25D46F943BBE265D /* Pods_RTRootNavigationController_Example_RTRootNavigationController_Tests.framework */; };
@@ -84,6 +85,7 @@
8485
9C2994EB1D09B84B007722C1 /* RTItemDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RTItemDetailViewController.m; sourceTree = "<group>"; };
8586
9C2994ED1D0A4D6F007722C1 /* RTWebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTWebViewController.h; sourceTree = "<group>"; };
8687
9C2994EE1D0A4D6F007722C1 /* RTWebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RTWebViewController.m; sourceTree = "<group>"; };
88+
9C323D231F0BA45C00A18836 /* CHANGELOG.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = CHANGELOG.md; sourceTree = "<group>"; };
8789
9C7832BF1D09111F00693F14 /* RTHideNavigationBarViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTHideNavigationBarViewController.h; sourceTree = "<group>"; };
8890
9C7832C01D09111F00693F14 /* RTHideNavigationBarViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RTHideNavigationBarViewController.m; sourceTree = "<group>"; };
8991
9C7832C21D09152900693F14 /* RTCollectionViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTCollectionViewController.h; sourceTree = "<group>"; };
@@ -205,9 +207,10 @@
205207
60FF7A9C1954A5C5007DD14C /* Podspec Metadata */ = {
206208
isa = PBXGroup;
207209
children = (
208-
67C2BF2B52D3057E8417FB63 /* RTRootNavigationController.podspec */,
209-
4B6ECD73E96DEED1827971A4 /* README.md */,
210+
9C323D231F0BA45C00A18836 /* CHANGELOG.md */,
210211
B930DAFF5ACFE0FF66B80F25 /* LICENSE */,
212+
4B6ECD73E96DEED1827971A4 /* README.md */,
213+
67C2BF2B52D3057E8417FB63 /* RTRootNavigationController.podspec */,
211214
);
212215
name = "Podspec Metadata";
213216
sourceTree = "<group>";
@@ -464,6 +467,7 @@
464467
9C7832C11D09111F00693F14 /* RTHideNavigationBarViewController.m in Sources */,
465468
9C16AF281D095EC700873B86 /* RTStaticTableViewController.m in Sources */,
466469
9C16AF221D09551E00873B86 /* RTPushRemoveViewController.m in Sources */,
470+
9C323D241F0BA45C00A18836 /* CHANGELOG.md in Sources */,
467471
6003F59A195388D20070C39A /* main.m in Sources */,
468472
9C2994E91D09B83C007722C1 /* RTItemListViewController.m in Sources */,
469473
9C2994EF1D0A4D6F007722C1 /* RTWebViewController.m in Sources */,

Example/RTRootNavigationController/Main.storyboard

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -578,7 +578,6 @@
578578
</constraints>
579579
</view>
580580
<navigationItem key="navigationItem" title="XYZ" id="woS-bY-DPi">
581-
<barButtonItem key="leftBarButtonItem" title="Left" id="iCV-wZ-MtN"/>
582581
<barButtonItem key="rightBarButtonItem" title="Right" id="8Nh-3X-dC3"/>
583582
</navigationItem>
584583
</viewController>

RTRootNavigationController.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
Pod::Spec.new do |s|
1010
s.name = 'RTRootNavigationController'
11-
s.version = '0.5.26'
11+
s.version = '0.6.0'
1212
s.summary = 'Transparently make every view controller has its own navigation bar'
1313
s.description = <<-DESC
1414
More and more apps use custom navigation bar for each different view controller, instead of one common, gloabal navigation bar.

RTRootNavigationController/Classes/RTRootNavigationController.m

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -566,8 +566,8 @@ - (instancetype)initWithRootViewControllerNoWrapping:(UIViewController *)rootVie
566566
{
567567
self = [super initWithRootViewController:[[RTContainerController alloc] initWithContentController:rootViewController]];
568568
if (self) {
569-
// [super pushViewController:rootViewController
570-
// animated:NO];
569+
// [super pushViewController:rootViewController
570+
// animated:NO];
571571
[self _commonInit];
572572
}
573573
return self;
@@ -840,7 +840,12 @@ - (void)navigationController:(UINavigationController *)navigationController
840840
BOOL isRootVC = viewController == navigationController.viewControllers.firstObject;
841841
if (!isRootVC) {
842842
viewController = RTSafeUnwrapViewController(viewController);
843-
if (!self.useSystemBackBarButtonItem && !viewController.navigationItem.leftBarButtonItem) {
843+
844+
BOOL hasSetLeftItem = viewController.navigationItem.leftBarButtonItem != nil;
845+
if (hasSetLeftItem && !viewController.rt_hasSetInteractivePop) {
846+
viewController.rt_disableInteractivePop = YES;
847+
}
848+
if (!self.useSystemBackBarButtonItem && !hasSetLeftItem) {
844849
if ([viewController respondsToSelector:@selector(rt_customBackItemWithTarget:action:)]) {
845850
viewController.navigationItem.leftBarButtonItem = [viewController rt_customBackItemWithTarget:self
846851
action:@selector(onBack:)];
@@ -851,11 +856,12 @@ - (void)navigationController:(UINavigationController *)navigationController
851856
viewController.navigationItem.leftBarButtonItem = [viewController customBackItemWithTarget:self
852857
action:@selector(onBack:)];
853858
#pragma clang diagnostic pop
854-
} else {
859+
}
860+
else {
855861
viewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Back", nil)
856-
style:UIBarButtonItemStylePlain
857-
target:self
858-
action:@selector(onBack:)];
862+
style:UIBarButtonItemStylePlain
863+
target:self
864+
action:@selector(onBack:)];
859865
}
860866
}
861867
}

0 commit comments

Comments
 (0)