Tag: uiviewcontroller

Facebooklogin后更改视图控制器

我有我的视图控制器下面列出处理Facebooklogin。 现在,应用程序运行并加载具有Facebookloginbutton的视图。 login后,button将文本更改为“注销”。 我想要发生的事情是,一旦用户login,然后去另一个视图控制器。 我在故事板中添加了一个新的视图控制器,并在两者之间做了一个“延续”,但我觉得我错过了一些东西。 如果有帮助,我所做的新视图控制器被命名为“homeViewController”。 谢谢 #import "ViewController.h" @interface ViewController () @end @implementation ViewController – (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. self.loginView.readPermissions = @[@"public_profile", @"email", @"user_friends"]; } – (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } – […]

在uiviewcontroller加载后更新xib视图的位置?

我有一个简单的UIViewController,它有一个相应的.xib文件。 ViewController *v = [[ViewController alloc] initWithNibName:@"ViewController" bundle:[NSBundle mainBundle]]; [self.navigationController pushViewController:v animated:YES]; 在这个.xib文件中,我有一个位于屏幕中间的UILabel。 一旦视图被加载,我想将这个标签移动到一个新的位置,但在可见之前: label.center = CGPointMake(0,0); 当我尝试把上面的代码放在下面的方法中时,会发生什么情况: initWithNibName:bundle :position不更新 awakeFromNib :位置不更新 viewDidLoad :位置不更新 viewWillAppear :位置不更新 viewDidAppear :位置只在视图完全加载后才更新(即可以在一秒钟内看到标签的原始位置)。 当我尝试更新像文本属性的东西: label.text = @"Foo"; 它在所有这些方法中都有效 出于某种原因,它只是被.xib文件覆盖的位置。 当我说“位置不更新”我的意思是,当标签显示在屏幕上时,它是在.xib文件中定义的位置,而不是我试图重写的位置。 当我尝试NSLog的位置,它表明它正确地更新它,但是当我再次检查位置viewDidAppear ,它显示不正确的值。 例如,假设.xib在99处定义了x,我想将其更改为0: – (void)viewWillAppear:(BOOL)animated { label.center = CGPointMake(0,0); NSLog(@"%f", label.center.x); // reports 0 } – (void)viewDidAppear:(BOOL)animated { NSLog(@"%f", label.center.x); […]

我应该如何在Xcode storyboard中链接视图控制器?

我想在xcode storyboard中链接视图控制器来达到以下效果: A→B→C→D→E→B→C→D→E→B→… 上面的字母表示单独的视图控制器(全尺寸的场景)。 当我在视图之间移动时,我想要从左到右横向滑动,我不希望或不需要保留之前视图的状态(即不推动或模态轮播)。 我确实需要在视图之间转移一些状态。 有关如何使用故事板编辑器,代码或二者的某种组合来实现最佳效果的build议?

刷新UIwebview没有任何晃动?

目前iam使用下面的代码刷新webview [webview reload]; 但在这种情况下,当我打开viewcontroller我可以看到突然的运动(摇摆或跳跃)的UIWebview在viewcontroller 。是否有任何方式来刷新在后台我的意思是没有任何更改的web视图运动?

访问视图超级视图的方法 – 什么是UIViewControllerWrapperView?

我的问题是以下 我有一个UIViewController子类,它拥有一个UISegmentedController和四个我在界面生成器中放置的表格。 @interface MultiTableHoldingView : UIViewController{ } @property (strong, nonatomic) IBOutlet DataTV *dsDataTV; @property (strong, nonatomic) IBOutlet EnviroTV *dsEnvironmentTV; @property (strong, nonatomic) IBOutlet LocationTV *dsLocationTV; @property (strong, nonatomic) IBOutlet Note_AnimalTV *dsNoteAnimal; @property (strong, nonatomic) IBOutlet UISegmentedControl *diveElementSegmentController; @property (strong, nonatomic) DiveSite* currentSite; – (IBAction)diveElementSegmentControllerDidChange:(UISegmentedControl *)sender; -(void) setFreshWaterColor; -(void) setSaltwaterColor; @end setFreshWaterColor和setSaltWaterColour只是设置MultiTableHoldingView实例UIView和它包含的四个表格的背景颜色属性。 从MultiTableHoldingView的viewDidLoad方法中调用这两种方法都可以正常工作。 这是其中之一 -(void) setSaltwaterColor{ […]

添加新的ViewController的视图作为子视图

我正在尝试以下,未能添加新的viewcontrollers视图。 是否只能呈现视图控制器? 我们不能添加视图从其他故事板viewcontrollers视图? //Working let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "customView") as! CustomViewController self.present( viewcontroller , animated: true, completion: nil) //Not working let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "customView") as! CustomViewController vc.view.frame = self.view.frame self.view.addSubview(vc.view)

iOS – 更新自动布局约束常量在推送另一个视图控制器然后返回后停止工作

我有一个UIViewControllerdevise在IB(Storyboard)有一个UIView包含几个控件。 UIView有一个自动布局约束来修复它的高度。 在我的UIViewController子类中,我有一个IBOutlet NSLayoutConstraint (ivar)连接到高度约束,以便我可以在代码中进行调整。 根据用户事件,我通过修改约束的80和44之间的constant属性来展开/缩小UIView的高度,这也是向上/向下滑动UITableView,它被限制在UIView的底部。 我以前使用过这种技术,一切正常。 我现在在UITabBar的父容器UIViewController中使用UIViewController的4个实例。 当UITabBar选项卡select更改时,我使用insertSubView在适当的实例中insertSubView 。 问题是UIView无法展开/收缩在第一个子视图控制器选项卡页。 在其他3个标签页实例中,它工作正常。 同样在3个标签页中它的工作原理,如果我推入另一个视图控制器到堆栈,然后返回,调整UIView不再工作。 在展开/缩小失败的情况下,我已经使用NSLog来监视约束的constant属性的值,并且在每个实例中都被改变,但UIView的高度不受影响。 就好像约束不再设置为在UIView上工作? 我使用的Xcode 5.1和我的应用程序是iOS7的目标。

导航控制器循环

我正在制作一个具有购物车function的应用程序。 购物车VC可以通过导航栏上的一个button从几个VC访问。 到目前为止,我只有一个导航控制器,如图所示,每个VC都带我到下一个,没有什么奇特的。 第三个VC(指向的蓝色箭头)是一个VC,显示产品/项目的细节,使我可以将其添加到购物车。 购物车VC出现问题。 要编辑该项目,我想重新使用相同的产品/项目的细节(蓝色箭头指向)VC我以前使用。 现在,我没有真正的问题,但是我注意到,一旦我创build了蓝色的segue,第三个VC的导航栏消失在Storyboard中,但是当我运行应用程序时,我仍然能够看到它。 注意: 图片中的所有节点都是“显示” 购物车VC没有像其他3个一样显示自己的button。 所以在技术上,我阻止了购物车的无尽/循环VC – 产品/项目细节VC显示彼此。 我的问题是: 用VC转到另一个VC来devise应用程序是否是错误的,而其他VC可以回到第一个VC? 我会在路上遇到问题,也许是某种内存泄漏? 有没有更好的方法来实现我想要实现的目标? 如果有人需要进一步的解释,请让我知道,我会编辑我的问题。 编辑:澄清,蓝色segue基本上是在购物车VC中的UITableViewbutton。 如果你点击那个button,它应该打开产品/物品细节VC,并让你编辑物品的颜色等。在物品细节VC,而不是作为一个新项目添加到购物车的项目,我会显示一个编辑button,将编辑请求发送到API,并将VC退回到购物车,或者我可以使用导航控制器中的后退button返回到购物车。 编辑2:@beshio 感谢你的回答。 然而,VC1实际上是我的所有应用程序启动的VC。 我没有得到为什么从导航控制器的堆栈中删除VC。 我想后退button按预期工作。 到目前为止,我已经达到了我想要的水平,但是恐怕有两个风险投资家相互依存会产生问题。 我已经禁用了VC3中的购物车button,以防从购物车提供VC3,所以会阻止循环。 我只是担心任何内存泄漏的道路上。

将variables传递给UIViewController中的自定义UITableViewCell

这里是我如何使用UIViewController自定义UITableViewCell RunningTableViewCell : func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("myCell", forIndexPath: indexPath) as! RunningTableViewCell //……. cell.isTop = false if(indexPath.row == 0){ cell.isTop = true } cell.isBottom = false if(indexPath.row == myArray.count-1){ cell.isBottom = true } return cell } 这里是我的RunningTableViewCell类:(单元格的GUI是在故事板内) class RunningTableViewCell: UITableViewCell { //@IBOutlet … @IBOutlet weak var myButton: […]

iOS:在UI(子)视图中处理UIGestureRecognisers

我想知道如何最好地解决以下问题: 我有一个单一的ViewController。 它的视图包含大量复杂的子视图(UIView的子类)。 由于这些UIViews的复杂性,初始化他们自己的UIGestureRecognisers并且执行相应的目标动作。 由于我想协调各种子视图的手势,我必须将单个ViewController设置为手势的委托。 这有很多种可能性。 1)初始化viewController中的所有手势(这将导致大量的viewController) 2)在UIVIews(getViewController)中定义一个协议,由ViewController实现 @protocol CustomViewDelegate <NSObject> @required – (UIViewController *)getViewController; @end 3)自定义UIViews的init方法,并使用ViewController作为选项。 – (id)initWithFrame:(CGRect)frame andViewController:(UIViewController *)vc; 解决这个问题最高雅的可能性是什么? 在UIView对象中实现目标动作可以吗? 感谢您的想法…