2013-06-27 86 views
0

以下代码将向上滚动查看。但是,它并没有让我的观察控制器变得越来越好。我调试了代码,它碰到了每一行代码,但我的视图控制器。不上移ViewController向上移动 - iOS

//DownViewController.m 

-(BOOL) textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    if (textField == self.hoursTextField) { 
     [textField resignFirstResponder]; 
     taggy=self.hoursTextField.tag; 
    } 
    if (textField ==self.codeTextField) { 
     [textField resignFirstResponder]; 
     taggy=self.codeTextField.tag; 

    } 
    return YES; 

} 
    - (void)keyboardDidShow:(NSNotification *)notification 
    { 
     //Assign new frame to your view 
     sensorViewController =[[SensorsViewController alloc]initWithNibName:@"SensorsViewController" bundle:[NSBundle mainBundle]]; 
     [sensorViewController setTag:taggy]; 


    } 


//SensorsViewController.m 

    -(void)setTag: (int)tag 
    { 
     if(tag==1) 
     { 
      a=-80; 
      [self.view setFrame:CGRectMake(0,a,1030,768)]; 
     } 
     if(tag==2) 
     { 
      a=-260; 
      [self.view setFrame:CGRectMake(0,a,1030,768)]; 
     } 

    } 
+0

setTag之前的框架是什么? –

+0

等一下... 你实例化一个viewController,然后在显示它之前设置它。这听起来像是一个问题。 –

+0

如何解决?如何在不启动DownViewController中的SensorViewController的情况下访问setTag方法 – casillas

回答

0

移位setTag方法的内部的SensorsViewControllerviewDidLoad呼叫。

+0

如何解决?如何在不启动DownViewController中的SensorViewController的情况下访问setTag方法? – casillas

+0

您应该在DownViewController的videdidload方法中创建sensorviewcontroller。 – Apurv

+0

我做过了,但它仍然没有向上移动我的SensorviewController setFrame – casillas

0

您每次键盘显示时都会为sensorViewController分配一个新值。您刚刚分配的实例不在屏幕上,因此当然,屏幕上的实例不会受到影响。您应该保留对已经在屏幕上的视图控制器的引用,如果您使用的是故事板或笔尖文件,则可以使用IBOutlet。

+0

如何才能解决?如何在不启动DownViewController中的SensorViewController的情况下访问setTag方法 – casillas

+0

使方法公开 –

+0

问题是,你想要什么?你想在键盘显示时首先显示'sensorViewController'吗?或者它已经显示? – architectpianist