【问题标题】:Navigation bar back button works only once导航栏后退按钮只能使用一次
【发布时间】:2014-07-04 14:45:51
【问题描述】:

在我打开 facebook 后,我有一些按钮可以在我的应用程序主视图上的 webview 中打开 facebook,我单击导航栏上的后退按钮,之后我无法再次打开 facebook。当我单击按钮时,应用程序不会崩溃,但它也不会做任何事情。 这是我的 WebView 的控制器

- (void)viewDidAppear:(BOOL)animated{
NSURL  *socialUrl=[[NSURL alloc] initWithString:selectedUrl] ;
NSURLRequest *urlRequest=[NSURLRequest requestWithURL:socialUrl];
[webViewSocial loadRequest:urlRequest];
webViewSocial.scalesPageToFit  = YES;
[self.navigationController setNavigationBarHidden:NO];
[super viewDidAppear:animated];}

这是我在 mainview 中的代码:

- (IBAction)facebookTouched:(id)sender {
socialPage = [[SocialMediaViewController alloc] initWithNibName:@"SocialMediaViewController" bundle:[NSBundle mainBundle]]  ;
socialPage.selectedUrl = URL_FACEBOOK ;
socialPage.title = @"Facebook";
[self.navigationController pushViewController:socialPage animated:YES]; }

【问题讨论】:

  • 打开webview后重新加载视图/
  • 我在 viewVillAppear 中使用了 setNeedsDisplay 但它没有帮助,如果这就是重新加载的意思。
  • 这个问题与Xcode无关。
  • 尝试从您的 viewDidAppear 方法中获取代码,而不是将其放入 viewDidLoad

标签: ios objective-c navigationbar


【解决方案1】:

好的,我解决了我的问题。 我从我的 MainViewController 中删除了这部分,它起作用了。我认为这部分不重要,所以我没有把它写到我的问题中。

   (void)viewWillAppear:(BOOL)animated{
    NSMutableArray *navigationArray = [[NSMutableArray alloc] initWithArray: self.navigationController.viewControllers];
    [navigationArray removeObjectAtIndex: 0];
    self.navigationController.viewControllers = navigationArray;
    [self.view setNeedsDisplay];
    [super viewWillAppear:animated];   
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-22
    • 2014-11-21
    • 2014-01-16
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多