gra*_*ile 5 loops objective-c segue
好吧,对你们中的一些人来说,这个问题可能听起来很荒谬,但我正和我的队友讨论ios应用程序的设计,我需要你对它的看法.
我不同意的旧设计如下
正如您所看到的,ViewController A和B之间存在一个segue循环,我认为我们永远不应该让它发生.我更喜欢通过导航栏中的"后退"按钮从B到A.
设计中的PUSH segue循环有多严重?在某些情况下是否可以接受?我在哪里可以看到苹果推荐的好设计(如果有的话?)
编辑:我尝试nfarshchi的"pop before push"解决方案,但它不起作用.这就是我的方法:1)我不能创建从VC A到VC B的segue,同时从VC B到VC A.似乎故事板阻止它发生2)因此我创建了一个segue,其标识符是"gotoB",从VC A中的Button"Go to B"到VC B,以及一个segue,其标识符是"gotoA",来自Button"Go to A"在VC B到VC A.
故事板看起来像这样:
VC X --- Push ---> VC A <---- Push ----> VC B(之后我需要ViewController X的原因将在后面解释)3)在VC中我有这样的:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSLog(@"Prepage for segue go to B") ;
if ([[segue identifier] isEqualToString:@"gotoB"] ) {
[self.navigationController popViewControllerAnimated:NO];
}
}
Run Code Online (Sandbox Code Playgroud)
我需要VC X,因为如果只有一个ViewController,我就无法从Stack中弹出ViewController.
现在看来是对的,但是当我点击"转到B"时,它转到VC X.很显然,上面的popViewControllerAnimated:已经加入了VC A,而且就是这样,VC B的segue不再被触发了.结果是VC B没有像预期的那样被推入Stack.
因此,我认为实施nfarshchi的解决方案是不可行的
您可以这样做,但请考虑当您推出 aUIViewController并再次将其推入时,您将调用很多方法来重新设计它。如果你想经常移动它们,最好使用UINavigationController. 在这种情况下,您只需制作一次,就可以轻松地在它们之间导航。这将使用更少的系统资源
| 归档时间: |
|
| 查看次数: |
932 次 |
| 最近记录: |