当我们在导航堆栈上推送页面时,我想知道是否可以将最大页面数限制为 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/