Объединив ответы Петра и Сарфраза, я пришел к следующему.
На странице1.html:
<a href="page2.html#elementID">Jump</a>
На странице2.html:
<script type="text/javascript">
$(document).ready(function() {
$('html, body').hide();
if (window.location.hash) {
setTimeout(function() {
$('html, body').scrollTop(0).show();
$('html, body').animate({
scrollTop: $(window.location.hash).offset().top
}, 1000)
}, 0);
}
else {
$('html, body').show();
}
});
</script>
Попробуйте это.
Там, где я написал SeeMyScoresViewController, вы должны написать свой класс View Controller, в который вам нужно перейти (например, Class of Home)
NSArray *viewControllers = [[self navigationController] viewControllers];
for( int i=0;i<[viewControllers count];i++){
id obj=[viewControllers objectAtIndex:i];
if([obj isKindOfClass:[SeeMyScoresViewController class]]){
[[self navigationController] popToViewController:obj animated:YES];
return;
}
}
Если вы хотите перейти к корневому контроллеру просмотра (стр. 1), просто используйте:
[self.navigationController popToRootViewControllerAnimated:YES];
Также первым элементом в индексе является не элемент 1, а элемент 0:
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:0] animated:YES];
Это должно вернуть вас к первому viewController, но им будет проще использовать метод popToRootViewController.
Современный способ возврата к определенному контроллеру:
[self.navigationController.viewControllers enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
if ([obj isKindOfClass:[MyViewController class]]) {
[self.navigationController popToViewController:obj animated:YES];
*stop = YES;
}
}];
MyViewController - это контроллер, к которому вы хотите вернуться.
Часто более важно сделать это с вершины стека, поэтому:
В подклассе или категории UINavigationController:
- (void)popToLast:(Class)aClass
{
for (int i=self.viewControllers.count-1; i>=0; i--)
{
UIViewController *vc = self.viewControllers[i];
if ([vc isKindOfClass:aClass])
{
[self popToViewController:vc animated:YES];
break;
}
}
}
, и вы называете это
popToLast:[SomeViewController class];