Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数据传递到本地html iOS webview_Ios_Xcode_Cocoa Touch_Uiviewcontroller - Fatal编程技术网

将数据传递到本地html iOS webview

将数据传递到本地html iOS webview,ios,xcode,cocoa-touch,uiviewcontroller,Ios,Xcode,Cocoa Touch,Uiviewcontroller,我试图在Facebook登录后从我的视图控制器传递到我的选项卡栏视图控制器,但它给了我以下错误: “NSInvalidArgumentException”,原因:“情节提要()不包含标识符为的视图控制器。” “仪表板视图控制器” 方法如下: - (void)loginViewFetchedUserInfo:(FBLoginView *)loginView user:(id<FBGraphUser>)user { NSS

我试图在Facebook登录后从我的视图控制器传递到我的选项卡栏视图控制器,但它给了我以下错误:

“NSInvalidArgumentException”,原因:“情节提要()不包含标识符为的视图控制器。” “仪表板视图控制器”

方法如下:

- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView
                            user:(id<FBGraphUser>)user {

    NSString *userName = [user first_name];
    NSString *userId = [user id];


    dashBoardViewController *dashBoardViewController =     [self.storyboard instantiateViewControllerWithIdentifier:@"dashBoardViewController"];
    dashBoardViewController.first_name = userName;
    dashBoardViewController.id = userId;
    [self presentModalViewController:dashBoardViewController animated:YES];
}
-(无效)loginView蚀刻教育信息:(FBLoginView*)loginView
用户:(id)用户{
NSString*userName=[用户名];
NSString*userId=[user id];
dashBoardViewController*dashBoardViewController=[self.storyboard实例化eviewController标识符:@“dashBoardViewController”];
dashBoardViewController.first_name=用户名;
dashBoardViewController.id=用户id;
[self-presentModalViewController:dashBoardViewController动画:是];
}
编辑

//
//  ViewController.m
//  LoginSampleFB
//
//

#import "ViewController.h"
#import "dashBoardViewController.h"
#import "BFPaperTabBarController.h"
#import <FacebookSDK/FacebookSDK.h>


@interface ViewController ()



@end

@implementation ViewController



- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    self.loginButton.delegate = self;
    self.loginButton.readPermissions = @[@"public_profile", @"email", @"publish_actions",];

}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}





- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView
                            user:(id<FBGraphUser>)user {

    NSString *userName = [user first_name];
    NSString *userId = [user id];



    dashBoardViewController *dashBoardViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"dashBoardViewController"];
    dashBoardViewController.first_name = userName;
    dashBoardViewController.id = userId;
    [self presentModalViewController:dashBoardViewController animated:YES];
}



-(void)loginView:(FBLoginView *)loginView handleError:(NSError *)error{
    NSLog(@"%@", [error localizedDescription]);
}


@end
//
//ViewController.m
//登录示例FB
//
//
#导入“ViewController.h”
#导入“dashBoardViewController.h”
#导入“BFPaperTabBarController.h”
#进口
@界面视图控制器()
@结束
@实现视图控制器
-(无效)viewDidLoad
{
[超级视图下载];
//加载视图后,通常从nib执行任何其他设置。
self.loginButton.delegate=self;
self.loginButton.readPermissions=@[@“公共”配置文件、@“电子邮件”、“发布”操作、];
}
-(无效)未收到记忆警告
{
[超级记忆警告];
//处置所有可以重新创建的资源。
}
-(无效)loginView蚀刻教育信息:(FBLoginView*)loginView
用户:(id)用户{
NSString*userName=[用户名];
NSString*userId=[user id];
dashBoardViewController*dashBoardViewController=[[UIStoryboard Storyboard with name:@“Main”bundle:nil]实例化控件标识符:@“dashBoardViewController”];
dashBoardViewController.first_name=用户名;
dashBoardViewController.id=用户id;
[self-presentModalViewController:dashBoardViewController动画:是];
}
-(无效)loginView:(FBLoginView*)loginView句柄错误:(N错误*)错误{
NSLog(@“%@,[错误本地化描述]);
}
@结束

//
//ViewController.h
//登录示例FB
//
//加布里埃尔·西奥多普洛斯于2014年5月12日创作。
//版权所有(c)2014 Appcoda。版权所有。
//
#进口
#进口
#导入“BFPaperTabBarController.h”
@界面ViewController:UIViewController
@属性(弱、非原子)IBOutlet FBLoginView*loginButton;
@属性(弱、非原子)IBUIButton*showEvent;
@属性(弱、非原子)IBUIButton*goQrcode;
@属性(保留,非原子)NSString*id;
@属性(保留,非原子)NSString*第一个\u名称;
@结束

请向上

您应该看看这个stackoverflow主题,它是相同的问题

恢复:

  • 检查并确保在情节提要中设置了控制器类和情节提要id。(参见与我的答案相关的主题中的图片)

    自定义类|类:dashBoardViewController

    标识|情节提要ID:dashBoardViewController

  • 如果是,但仍然无法运行,请尝试从iPhone模拟器或测试设备中删除应用程序,清理项目,构建并运行它

  • 如果错误仍然存在: 尝试使用
    [[UIStoryboard storyboard with name:@“nameofyourstoryboard”捆绑包:nil]实例化eviewController及其标识符:@“dashBoardViewController”]
    而不是
    self.storyboard
    。 你一定会得到像那样正确的东西

  • 还是不行?从情节提要中删除控制器,然后尝试重新创建一个新的控制器。有时它会发生


  • 登录Facebook后,您可以声明一个新的控制器
    dashBoardViewController
    ,并尝试将其显示为模式控制器

    dashBoardViewController *dashBoardViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"dashBoardViewController"];
        dashBoardViewController.first_name = userName;
        dashBoardViewController.id = userId;
        [self presentModalViewController:dashBoardViewController animated:YES];
    
    但这没有任何意义,因为您已经将仪表板视图控制器作为初始控制器使用了
    dashBoardViewController
    。此外,此类
    dashBoardViewController
    是UITabBarController的子类,因此您可以在附于选项卡栏的每个
    viewcontroller
    中访问它

    请参阅此链接以了解UITabBarController的工作原理:

    请参阅此链接以了解什么是演示视图控制器:

    要解决您的问题,您必须调用当前的tabbarcontroller,将其转换为
    dashBoardViewController
    ,并设置facebook参数

    - (void)loginViewFetchedUserInfo:(FBLoginView *)loginView
                                user:(id<FBGraphUser>)user {
    
        NSString *userName = [user first_name];
        NSString *userId = [user id];
        ((dashBoardViewController*)self.tabBarController).first_name = userName;
        ((dashBoardViewController*)self.tabBarController).id = userId;
    
    }
    

    您应该学习一些面向对象编程课程,以了解它是如何工作的。此外,在编写代码时,请尽量遵守约定,如变量的Camel Case和类的Pascal Case。

    是否已将
    仪表板ViewController
    作为
    情节提要ID分配给
    界面生成器中的任何ViewController
    ?LoginSampleFB[504:8259]警告:尝试显示其视图不在窗口层次结构中的对象!在控制台日志中使用此方法时,它会返回@jregnauld@Jack_usti你能把使用FBLoginViewDelegate的控制器的代码放进去吗?@Jack_usti我从你使用的AppCoda修改了这个项目。我添加了一个uitabarcontroller和一个控制器,在您登录Facebook后显示。我想这可能有助于你了解你的问题所在。如果可以,请告诉我。我的项目中有什么需要更改的?他们有点不同@jregnauld@Jack_usti这些区别是什么?故事板是如何设置的?
    - (void)loginViewFetchedUserInfo:(FBLoginView *)loginView
                                user:(id<FBGraphUser>)user {
    
        NSString *userName = [user first_name];
        NSString *userId = [user id];
        ((dashBoardViewController*)self.tabBarController).first_name = userName;
        ((dashBoardViewController*)self.tabBarController).id = userId;
    
    }
    
    ((dashBoardViewController*)self.tabBarController).first_name
    ((dashBoardViewController*)self.tabBarController).id