我从AppCoda开始遵循本教程来解决我在TabApplication中遇到的问题,它是 NOT 。一个webkit,我使用这个策略来解决我没有显示的标题。 这是一个列出本地事件乐队的应用程序。所以你有:
TabBarController > Nav1 > RELATIONSHIP > Home
> Nav2 > RELATIONSHIP > ARTISTS > UIBUTTON > push to new page.
> etc.
他们都工作得非常好;如果我点击一个艺术家形象(UIButton)它会把我带到他们的页面。顶部是横幅(UIIMAGE),底部区域是UISCROLLVIEW。
这就是我的问题所在:如果我点击艺术家按钮,将UIScrollView滚动到底部,然后我通过点击另一个Tab键离开页面我发现冲突:当我点击按钮返回艺术家列表时(未指定的艺术家)它让我离开的地方,UIScrollView的底部和带有链接的标签栏之间存在一个尴尬的差距。
我有没有办法指定使用6 UIBUTTONS返回Artist页面?甚至可以在屏幕底部获取TabBar选项的RID?我不知道如何编写UISCROLLVIEW代码,我只是使用Storyboard来绘制ScrollView,因为这是我无法解决的一件事。
___________________________________
| |
|_________ARTIST____________NAME__|
| |
| :) |
| |
| |
| |
| :) |
|_________________________________|
| |
| |
| .....UISCROLLVIEW |
|_________________________________|
|MAKE_BLANK __BAR_____NO LINKS____| Sorry for the horrible example.
答案 0 :(得分:0)
据我所知,你的导航问题是:
在选项卡2上,您有一个导航控制器,其初始viewController是艺术家名称列表。如果选择艺术家名称,则会转到第二个viewController(仍然在选项卡2中),其中显示了艺术家的详细信息。
现在,如果您导航到选项卡1,执行其他操作,请返回选项卡2,您希望确保向您显示带有艺术家名称列表的初始viewController,而您将返回到同一艺术家的页面已走了。这会使您的应用处于导航状态不佳的状态(带有毛刺的滚动视图)。
因此,您要做的是阻止用户从艺术家页面中跳出标签,以便他们被迫返回艺术家列表,从可以标签到其他位置。
你可以通过从最初的viewController呈现艺术家viewController来实现这一点,而不是将推送到navigationController的viewControllers堆栈(我假设你现在正在做)。
要做到这一点,你实际上并没有在tab2中使用导航控制器,所以你可能会选择摆脱它(除非你出于其他原因需要顶级导航栏)。
代码
从artistsNamesViewController,创建一个带动作的按钮:
- (IBAction) presentArtistsDetailViewController:(id)sender
{
ArtistsDetailViewController* artistsDetailViewController = [ArtistsDetailViewController alloc] init];
//set up artistsDetailViewController properties here
[self presentViewController:artistsDetailViewController animated:YES completion:nil];
}
使用故事板
您可以将segue线从按钮拖到artistDetailViewController,而不是代码,选择segue type modal
。如果您需要在artistsDetailViewController
中初始化属性,可以在prepareForSegue
您将看到此类导航使用默认的上滑动画来显示新的viewController,整个屏幕也会发生变化 - 您将丢失标签栏。您可以通过在modalTransitionStyle
上设置artistsDetailViewController
属性来更改动画。
通过添加'dismiss'按钮来控制导航,使用类似这样的IBAction ......
- (IBAction) dismiss:(id) sender
{
[self.presentingViewController dismissViewControllerAnimated:YES completion:nil]
}
如果您的用户位于最初的artistsNamesViewController上,那么您现在只能从标签2中跳出标签。您不会在scrollView中出现故障,因为每次进入艺术家详细信息页面时,您都会重新创建并重新初始化它。这不会解决您的应用程序中可能遇到问题scrollView的其他部分(正如您在评论中所建议的那样),但这是一个单独的问题,我想解决您的导航逻辑。
您不会以这种方式在artistsDetailViewController顶部获得导航栏,因为不涉及导航控制器。如果需要导航栏,可以手动将其放在故事板中的viewController上。