菜鸟教程小白 发表于 2022-12-12 21:11:39

ios - 在 uipickerview 中显示选中的值


                                            <p><p>我的详细页面中有一个 uipickerview。当我编辑来 self 的 tableviewcell 的相应记录时,我想获得默认选择的值。简而言之,我有一个包含 10 条记录的表格 View 。当我从 tableview 单元格中选择一条记录时,它会导航到详细页面,该页面包含三个选择器 View ,每个 View 都有一个组件。我希望选择器 View 默认加载选定的值。下面是我如何加载数据的代码。如何在 -(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row 中显示选定的值,还有一件事是我正在为这个页面使用 UINavigationcontroller?小伙伴们可以帮帮我吗</p>

<pre><code>-(void)loadprojects
{
    NSString *post =[ initWithFormat:@&#34;username=%@&#34;,];
    //NSString *pickername = ;
    //NSString *key = @&#34;Da9s^a2Rp4na6R$ikiAsav3Is@niWsa&#34;;

    //NSString *encrypteduname = ;

    // Code for Project loading
    NSString *projecturltemp = @&#34;http://xxx.xxx/GetAssignedProjects&#34;;
    NSString *str = [ valueForKey:@&#34;UserLoginIdSession&#34;];
    NSString *usrid = str;
    NSString * projecturl =;


    NSURL *url = ;

    NSData *postData = ;




    NSString *postLength = ];
    NSMutableURLRequest *request = [ init];
    ;
    ;
    ;
    ;
    ;
    ;


    NSError *error = [ init];
    NSHTTPURLResponse *response = nil;
    NSData *urlData=;
    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url
                                                cachePolicy:NSURLRequestReturnCacheDataElseLoad
                                          timeoutInterval:30];


    // Make synchronous request
    urlData = [NSURLConnection sendSynchronousRequest:urlRequest
                                    returningResponse:&amp;response
                                                error:&amp;error];
    if ( &gt;= 200 &amp;&amp; &lt; 300)
    {
      NSString *responseData = [NSJSONSerialization JSONObjectWithData:urlData
                                                               options:NSJSONReadingAllowFragments error:&amp;error];

      NSArray *entries =
                                                         options:0 error:&amp;error];
      if(!entries)
      {
            NSLog(@&#34;Error : %@&#34;, error);
      }
      else{

            for (NSDictionary *entry in entries) {
                projID = ;
                projectNames = ;
            }
            randomSelection=;
            randomSelectionID = ;
            _projectpicker.delegate = self;
            _projectpicker.dataSource = self;
      }

    }       else {

    }
}


-(void)loaddata
{
    NSString *eventDate = self.projidstocancel;
    [ setObject:eventDate forKey:@&#34;Eventdate&#34;];
    [ synchronize];
    NSString *post =[ initWithFormat:@&#34;username : %@&amp;Password :%@&#34;,,];
    //NSString *pickername = ;
    //NSString *key = @&#34;Da9s^a2Rp4na6R$ikiAsav3Is@niWsa&#34;;

    //NSString *encrypteduname = ;

    // Code for Project loading
    NSString *projecturltemp = @&#34;http://xxx.xxxx/GetDetailsByID&#34;;
    NSString *str = [ valueForKey:@&#34;UserLoginIdSession&#34;];
    NSString *usrid = str;
    NSString * projecturl =;
    NSURL *url = ;


    NSData *postData = ;




    NSString *postLength = ];
    NSMutableURLRequest *request = [ init];
    ;
    ;
    ;
    ;
    ;
    ;


    NSError *error = [ init];
    NSHTTPURLResponse *response = nil;
    NSData *urlData=;
    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url
                                                cachePolicy:NSURLRequestReturnCacheDataElseLoad
                                          timeoutInterval:30];


    // Make synchronous request
    urlData = [NSURLConnection sendSynchronousRequest:urlRequest
                                    returningResponse:&amp;response
                                                error:&amp;error];
    if ( &gt;= 200 &amp;&amp; &lt; 300)
    {
      NSString *responseData = [NSJSONSerialization JSONObjectWithData:urlData
                                                               options:NSJSONReadingAllowFragments error:&amp;error];

      NSArray *entries =
                                                         options:0 error:&amp;error];
      if(!entries)
      {
            NSLog(@&#34;Error : %@&#34;, error);
      }
      else{

            for (NSDictionary *entry in entries) {
                projectNames = ;
                taskNames = ;
                subtaskNames = ;
                hdnlblProjects.text = [componentsJoinedByString:@&#34;&#34;];
                hdnlblTasks.text = [componentsJoinedByString:@&#34;&#34;];
                hdnlblSubTasks.text = [componentsJoinedByString:@&#34;&#34;];
                txthours.text = [componentsJoinedByString:@&#34;&#34;];
                txtstatus.text = [componentsJoinedByString:@&#34;&#34;];
                lblBenefitsLeaves.text = [componentsJoinedByString:@&#34;&#34;];
                BenefitNames = ;
                projID = ;
                taskID = ;
                subtskID = ;
            }
            lblProjects.text = [ componentsJoinedByString:@&#34;&#34;];
            taskstring = [ componentsJoinedByString:@&#34;&#34;];
            subtaskstring = [ componentsJoinedByString:@&#34;&#34;];
            bentest = [ componentsJoinedByString:@&#34;&#34;];
            hrsdiff1 = ;
      }

    }       else {

    }
}

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return 1;
}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    int numberofRows = 0;
    if(){
      numberofRows = ;
      return numberofRows;
    }
    else if(){
      numberofRows = ;
      return numberofRows;
    }
    else if(){
      numberofRows = ;
      return numberofRows;
    }
}
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    NSString *title = @&#34;Test&#34;;
    if(){
      title = ;
      return title;
    }

    else if (){
      title = ;
      return title;
    }
    else if (){
      title = ;
      return title;
    }

}

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    //NSLog(@&#34;%@&#34;,myArrayString);
    //NSLog(@&#34;%@&#34;,myTaskArrayString);
   if(){
      NSNumber *myProjectArrayString = ;
      lblProjects.text = ;
      lblProjects.hidden = YES;
      lblBenefitsLeaves.text = ;
      hdnlblProjects.text = ;
      rownoedit = row;
       lblTasks.text = @&#34;0&#34;;
       hdnlblTasks.text = @&#34;--Select--&#34;;
       lblSubTasks.text = @&#34;0&#34;;
       hdnlblSubTasks.text = @&#34;--Select--&#34;;
      ;

    }
    //lblProjects.hidden = YES;
    else if()
    {
      NSNumber *myTaskArrayString = ;
      lblTasks.text = ;
      lblTasks.hidden = YES;
      hdnlblTasks.text = ;
      lblSubTasks.text = @&#34;0&#34;;
      hdnlblSubTasks.text = @&#34;--Select--&#34;;
      ;

    }
    else if()
    {
      NSNumber *mysubtaskArrayString = ;
      lblSubTasks.text = ;
      lblSubTasks.hidden = YES;
      hdnlblSubTasks.text = ;

      //lblTasks.text = ];
      //lblTasks.text = ;
      //lblSubTasks.text = ];
    }
}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>首先定义一个静态变量,并在加载时为其赋予初始值</p>

<p>ex : <code>static int selectedRow = 3</code></p>

<pre><code>-(void)pickerView:(UIPickerView *)pickerView didSelectRow:
(NSInteger)row inComponent:(NSInteger)component{
selectedRow = ;
</code></pre>

<p>}</p>

<p>然后在你显示pickerView的地方放置这一行</p>

<pre><code>;
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在 uipickerview 中显示选中的值,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/22832712/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/22832712/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在 uipickerview 中显示选中的值