Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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
Ios 在Tabbar应用程序上将UILabel的值从FirstView传递到SecondView_Ios_Uilabel_Uitabbar_Tabbarcontroller - Fatal编程技术网

Ios 在Tabbar应用程序上将UILabel的值从FirstView传递到SecondView

Ios 在Tabbar应用程序上将UILabel的值从FirstView传递到SecondView,ios,uilabel,uitabbar,tabbarcontroller,Ios,Uilabel,Uitabbar,Tabbarcontroller,我正在尝试制作一个从气象站获取数据的应用程序。它是一个基于tabbar的应用程序。 我有两个视图控制器:第一个视图控制器和第二个视图控制器 在FirstViewController中,我完成了大部分工作。使用来自xml解析的值并将这些值分配给UILabel。这很好。 我使用if()根据风的角度指定UILabel风的名称,如: 在我的FirstViewController.m中 -(void)setWindDirectionName { if(windDirectionAngle

我正在尝试制作一个从气象站获取数据的应用程序。它是一个基于tabbar的应用程序。 我有两个视图控制器:第一个视图控制器和第二个视图控制器

在FirstViewController中,我完成了大部分工作。使用来自xml解析的值并将这些值分配给UILabel。这很好。 我使用if()根据风的角度指定UILabel风的名称,如:

在我的FirstViewController.m中

-(void)setWindDirectionName 
{    
   if(windDirectionAngle >= 0 && windDirectionAngle <=11.25f) labelWindDirectionName.text = @"N";
   if(windDirectionAngle > 11.25f && windDirectionAngle <=33.75f) labelWindDirectionName.text = @"NNE";
   if(windDirectionAngle > 33.75f && windDirectionAngle <= 56.25f) labelWindDirectionName.text = @"NE";
   if(windDirectionAngle > 56.25f && windDirectionAngle <=78.75f) labelWindDirectionName.text = @"ENE";
   if(windDirectionAngle > 78.75f && windDirectionAngle <=101.25f) labelWindDirectionName.text = @"E";
   .
   .
   . so on
在基于tabbar的应用程序中,如何将数据(UILABEL.TEXT)传递到另一个视图?我哪里出错了? 谢谢你的代码

FirstViewController *fvc = [[FirstViewController alloc]init]; 
您正在分配FirstViewController的新实例,因此它将返回null。如果您需要访问这些名称,那么您可以将其存储在
NSUserDefaults
中,然后可以访问您需要的任何位置

例如:在FirstViewController中: 将名称和其他内容另存为:

    [[NSUserDefaults standardUserDefaults] setObject:labelWindDirectionName.text forKey:@"windName"];//Note : Here windName is a key so you can save diffrent data using diffrent keys and same way can access those data using these keys whereever you require.
    [[NSUserDefaults standardUserDefaults] synchronize];
要在
SecondViewController
中访问,请使用此

labelCompassViewWindDirectionName.text = [[NSUserDefaults standardUserDefaults] objectForKey:@"windName"];

希望它对您有所帮助。

尝试将SecondViewController的NSString属性设置为所需的值,然后在SecondViewController的viewDidLoad方法中使用此属性的值设置标签文本。

正确获取您的
viewController
对象并放置该对象

 FirstViewController *fvc = (FirstViewController *)[self.navigationController.viewControllers objectAtIndex:([self.navigationController.viewControllers count] -1)];
fvc.labelWindDirectionName.text = @"Something";
如果在同一选项卡中按一个视图控制器,则采用该方法。 既然你说了前一个控制员。。所以,试试这个,它会有帮助的

如果需要,请选择TabBar

for(id object in [(UINavigationController *)self.tabBarController.selectedViewController viewControllers])
{
   if([object isKindOfClass:[FirstViewController class]])
    {
          FirstViewController *obj = (FirstViewController * ) object;
          obj.labelWindDirectionName.text = @"Something";
          break;
     } 
}

FirstViewController*fvc=[[FirstViewController alloc]init];每次初始化。。。所以它会制造出全新的物体。。。。。获取第一个视图导航控制器对象,然后分配……确定:)现在假设selectedViewController是NavigationController。如果知道它会很好用的。
 FirstViewController *fvc = (FirstViewController *)[self.navigationController.viewControllers objectAtIndex:([self.navigationController.viewControllers count] -1)];
fvc.labelWindDirectionName.text = @"Something";
for(id object in [(UINavigationController *)self.tabBarController.selectedViewController viewControllers])
{
   if([object isKindOfClass:[FirstViewController class]])
    {
          FirstViewController *obj = (FirstViewController * ) object;
          obj.labelWindDirectionName.text = @"Something";
          break;
     } 
}