ios - IOS中的导航栈管理

标签 ios objective-c ios8.1

当我们在导航堆栈上推送页面时,我想知道是否可以将最大页面数限制为 10 左右到 r。例如,

如果限制为 4 : A -> B -> C -> D 现在 D 在上面,A 是根。 当我尝试按下 E 时,它应该从堆栈中移除 B。因为我需要 rootVC 留在原地。 结果应该是: A -> C -> D -> E.

此外,我知道如何在堆栈中删除和添加 View Controller ,我的问题是如何在应用程序运行时跟踪 navStack。

最佳答案

试试这个代码:

- (void)limitNavigationStack{
    NSMutableArray* controllers= [self.navCtrl.viewControllers mutableCopy];
    if(controllers.count> MAX_CONTROLLERS){
        [controllers removeObjectAtIndex:1]; // Remove first object after root
        [self.navCtrl setViewControllers:controllers];
    }
}

您可以将这段代码放在您的 appDelegate 中,并从您的 viewController 的 viewDidLoad 中调用它。

如您所指出的那样,为了使其更通用,您可以继承基本 View Controller 并从其 viewDidLoad 调用此方法

关于ios - IOS中的导航栈管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29294844/

相关文章:

ios - UITableView 按字母划分,如联系人列表

PHP iOS AES 加密不一致

ios - PayPal 支付卡住 "processing"

objective-c - 如何检查应用程序/二进制文件的另一个实例是否已经在运行

UITableView 快速获取 titleForHeadersInSection

ios - 在 Swift 中使用 AVAudioEngine 点击麦克风输入

ios - 渲染上下文 : producing an image with blurry text

ios - 删除 Realm 对象后更新 UICollectionView

ios - 删除表情符号错误

ios - 在以前的版本中为应用程序创建快捷方式会崩溃