【问题标题】:passing integer value from one UIView to another UIview将整数值从一个 UIView 传递到另一个 UIView
【发布时间】:2011-10-01 03:26:36
【问题描述】:

我正在创建一个代码,我想在其中将一个 uiview 的整数值传递给另一个视图。在另一个 uiview 中,该整数值作为标签文本。如何为此编写代码?

【问题讨论】:

    标签: iphone xcode uiview


    【解决方案1】:

    把这个放在 SecondViewController 的 .h 文件中

    int value;
    

    在 SecondViewController 中创建以下函数

    -(void)setValue:(int)number{
        value=number;
    }
    

    现在在第一个视图控制器中这样做:

    ParentViewController *objSecond = [[ParentViewController] initwithNibName:@"parentView.xib" bundle:nil];
    
    [objSecond setValue:15]; // Pass actual Value here
    [self.navigationController pushViewController:objSecond animated:YES];
    [objSecond release];
    

    现在,在 secondViewController 的 viewWillAppear 方法中写下这个。

    -(void)viewWillAppear:(BOOL)animated{
          myValue = value;
    }
    

    请检查我手写的拼写错误。希望对您有所帮助。

    如果你没有使用 navigationContoller,那么你可以这样做。

    SecondViewControler *objSecond = [[SecondViewController] initwithNibName:@"secondview.xib" bundle:nil];
    [objSecond setValue:15]; // Pass actual Value here
    [objSecond viewWillAppear:YES];
    [self.view addSubview:objSecond];
    [objSecond release];
    

    【讨论】:

      【解决方案2】:

      您可以将它作为整数值本身传递,就像您在 c 或任何其他语言中所做的那样。 在第二个视图中,您可以使用 [NSString stringWithFormat:@"%d",intVal]; 将其转换为字符串;

      在第二个视图中,声明一个 NSUInteger 变量,比如 NSUInteger _intVal。

      在.h文件中,声明一个方法

      -(void)setIntVal:(NSUInteger)inVal;
      

      在.m文件中,

      -(void)setIntVal:(NSUInteger)inVal
      {
         _intVal = inVal;
      }
      

      现在您可以在第二个视图中使用 _intVal。

      【讨论】:

        【解决方案3】:

        在 .h 文件中声明一个变量

        NSInteger tempValue;
        

        声明一个这样的方法:

        - (void)SetValue:(NSInteger)value {
            tempValue=value;
        }
        
        - (void)GetValue{
           return tempValue;
        }
        

        当你设置它时,你使用:

        AppDelegate* app = (AppDelegate*)[[UIApplication sharedApplication] delegate];
        [app SetValue:xxxx]
        

        当你需要它时,使用:

        AppDelegate* app = (AppDelegate*)[[UIApplication sharedApplication] delegate];
        xxxx = [app GetValue];
        

        【讨论】:

        • 我对此一无所知。你可以在 details.above 中扩展我在第一个或第二个视图中使用的功能吗?
        • 它们在一个或两个视图控制器中。
        • 在我的项目中,我有一个应用程序委托文件六视图。
        • 我改了答案,你可以试试
        • (void)GetValue(){ return tempValue; } 所以在 '(' token 之前会出现错误 '{'
        【解决方案4】:

        当您从 view1 转到 view2 时,请这样做。

        在view2中取一个变量并将属性设置为

        @property (nonatomic,readwrite) int val;  //this is in the view2 .h file
        

        在 view2 .m 文件中执行此操作。 @synthesize val;

        然后当您将 view2 作为子视图添加到 view1 时

        view2object.val=someval;// like 1,2,3....
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-12-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多