29,043
社区成员
发帖
与我相关
我的任务
分享
[/quote]
+50~[/quote]
嘿嘿 不过你自定义一个栈也可以啊,自己维护的东西好扩展
[/quote]
+50~
[/quote]
+50~[/quote]
楼主给分撒

@interface WindowStack : NSObject{
UIViewController * _root;
NSMutableArray * _stack;
}
-(id)initWidthRootView:(UIViewController *)root;
-(void)push:(UIViewController *) controller isClearStack:(BOOL)isClearStack;
-(void)pop;
@end
@implementation WindowStack
-(id)initWidthRootView:(UIViewController *)root{
_root = root;
_stack = [[NSMutableArray alloc] initWithCapacity:5];
[_stack addObject:root];
return [super init];
}
-(void)push:(UIViewController *) controller isClearStack:(BOOL)isClearStack{
if (isClearStack) {
while (_stack.count > 1) {
[self pop];
}
}
[[_stack objectAtIndex:_stack.count - 1] presentViewController:controller animated:YES completion:nil];
[_stack addObject:controller];
}
-(void)pop{
if (_stack.count > 1) {
UIViewController * controller = [_stack objectAtIndex:_stack.count - 1];
[controller dismissViewControllerAnimated:NO completion:nil];
[controller.view removeFromSuperview];
[_stack removeObject:controller];
}
}
@end
我觉得这是个临时的解决办法,不过用着还可以~~
1)用Navigation
A push B
B pop A
2)用模态
A present B
B dimiss A
3)用container viewController
A addChild B
A addChild C
B..C之间的切换看自己定义吧。
不知道是不是楼主想要的